Timen van output PHP array
Dit is mijn script:
$tweettext = array('test1 autotwitter #IOT', 'test2 autotwitter #IOT', 'test3 autotwitter #IOT', 'test4 autotwitter #IOT', 'test5 autotwitter #IOT');
foreach ($tweettext as $autotweet) {
//echo $autotweet;
$tweet->post('statuses/update', array('status' => $autotweet ));
}
Al vast bedankt.
Om de 30 minuten neemt Ajax contact op met de server, met de juiste index. Index wordt telkens geïncrementeerd ...
Deze code kan je stand alone uittesten. Het doet al ongeveer wat je nodig hebt.
Kwestie dat je geen 2 uur moet wachten, heb ik het interval op 5 seconden gezet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
if (isset($_GET['ajax'], $_GET['index'])) {
$tweets = array(
'Tweet 1', 'Tweet 2', 'Tweet 3', 'Tweet 4', 'Tweet 5'
);
if ((int) $_GET['index'] < count($tweets)) {
$tweet = $tweets[(int) $_GET['index']];
// nu kan je doen wat je moet doen. Zie je eigen script ...
// stuur je nog een bericht naar javascript terug. In dit geval toon in de tweet ('t is een demo ...), maar je kan ook bv. gewoon een '1' echo'en
echo $tweet;
}
else {
echo ""; // de tweets zijn op. Door javascript te vertellen dat er niets meer te zeggen valt, valt te timer stil.
}
// De rest van de pagina mag niet uitgevoerd worden.
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>Ajax gebruiken als timer</title>
</head>
<body>
<div id="message"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
var index = 0;
var interval = 5000; // mijn interval staat op 5 seconden. Pas zelf maar aan (30 minuten = 1000 * 60 * 30 ms)
sendTweet(); // de timer op gang trekken
// functie de de tweet verzendt.
function sendTweet() {
$.ajax({
url: 'index.php?ajax=1&index=' + index,
success: function(message) {
if (message == '') {
return false; // na de laatste tweet stoppen we de timer
}
// boodschap tonen in de div
$('#message').html(message);
// index incrementeren en de functie opnieuw uitvoeren. zo lang php een boodschap blijft sturen.
index++;
setTimeout(
sendTweet,
interval
); // sendTweet() opnieuw uitvoeren over ... seconden/minuten
}
})
}
})
</script>
</body>
</html>
if (isset($_GET['ajax'], $_GET['index'])) {
$tweets = array(
'Tweet 1', 'Tweet 2', 'Tweet 3', 'Tweet 4', 'Tweet 5'
);
if ((int) $_GET['index'] < count($tweets)) {
$tweet = $tweets[(int) $_GET['index']];
// nu kan je doen wat je moet doen. Zie je eigen script ...
// stuur je nog een bericht naar javascript terug. In dit geval toon in de tweet ('t is een demo ...), maar je kan ook bv. gewoon een '1' echo'en
echo $tweet;
}
else {
echo ""; // de tweets zijn op. Door javascript te vertellen dat er niets meer te zeggen valt, valt te timer stil.
}
// De rest van de pagina mag niet uitgevoerd worden.
exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>Ajax gebruiken als timer</title>
</head>
<body>
<div id="message"></div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
var index = 0;
var interval = 5000; // mijn interval staat op 5 seconden. Pas zelf maar aan (30 minuten = 1000 * 60 * 30 ms)
sendTweet(); // de timer op gang trekken
// functie de de tweet verzendt.
function sendTweet() {
$.ajax({
url: 'index.php?ajax=1&index=' + index,
success: function(message) {
if (message == '') {
return false; // na de laatste tweet stoppen we de timer
}
// boodschap tonen in de div
$('#message').html(message);
// index incrementeren en de functie opnieuw uitvoeren. zo lang php een boodschap blijft sturen.
index++;
setTimeout(
sendTweet,
interval
); // sendTweet() opnieuw uitvoeren over ... seconden/minuten
}
})
}
})
</script>
</body>
</html>
Gewijzigd op 21/09/2012 15:42:29 door Marco Hendriks
Veel eenvoudiger dan dit wordt het niet ...
oke dank je :)
Fatal error: Call to a member function post() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/Scriptie/twitter/test.php on line 19
Ik weet wat het betekend alleen hoe los ik het op?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$consumerKey = '--';
$consumerSecret = '--';
$oAuthToken = '--';
$oAuthSecret = '--';
require_once('twitteroauth.php');
$tweet2 = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret);
if (isset($_GET['ajax'], $_GET['index'])) {
$tweets = array('Tweet 1', 'Tweet 2', 'Tweet 3', 'Tweet 4', 'Tweet 5');
if ((int) $_GET['index'] < count($tweets)) {
$tweet = $tweets[(int) $_GET['index']];
// nu kan je doen wat je moet doen. Zie je eigen script ...
$tweet2->post('statuses/update', array('status' => $tweets ));
// stuur je nog een bericht naar javascript terug. In dit geval toon in de tweet ('t is een demo ...), maar je kan ook bv. gewoon een '1' echo'en
echo $tweet;
}
else {
echo ""; // de tweets zijn op. Door javascript te vertellen dat er niets meer te zeggen valt, valt te timer stil.
}
// De rest van de pagina mag niet uitgevoerd worden.
exit;
}
?>
$consumerKey = '--';
$consumerSecret = '--';
$oAuthToken = '--';
$oAuthSecret = '--';
require_once('twitteroauth.php');
$tweet2 = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret);
if (isset($_GET['ajax'], $_GET['index'])) {
$tweets = array('Tweet 1', 'Tweet 2', 'Tweet 3', 'Tweet 4', 'Tweet 5');
if ((int) $_GET['index'] < count($tweets)) {
$tweet = $tweets[(int) $_GET['index']];
// nu kan je doen wat je moet doen. Zie je eigen script ...
$tweet2->post('statuses/update', array('status' => $tweets ));
// stuur je nog een bericht naar javascript terug. In dit geval toon in de tweet ('t is een demo ...), maar je kan ook bv. gewoon een '1' echo'en
echo $tweet;
}
else {
echo ""; // de tweets zijn op. Door javascript te vertellen dat er niets meer te zeggen valt, valt te timer stil.
}
// De rest van de pagina mag niet uitgevoerd worden.
exit;
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>Ajax gebruiken als timer</title>
</head>
<body>
<div id="message">
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
var index = 0;
var interval = 5000; // mijn interval staat op 5 seconden. Pas zelf maar aan (30 minuten = 1000 * 60 * 30 ms)
sendTweet(); // de timer op gang trekken
// functie de de tweet verzendt.
function sendTweet() {
$.ajax({
url: 'test.php?ajax=1&index=' + index,
success: function(message) {
if (message == '') {
return false; // na de laatste tweet stoppen we de timer
}
// boodschap tonen in de div
$('#message').html(message);
// index incrementeren en de functie opnieuw uitvoeren. zo lang php een boodschap blijft sturen.
index++;
setTimeout(
sendTweet,
interval
); // sendTweet() opnieuw uitvoeren over ... seconden/minuten
}
})
}
})
</script>
</body>
</html>
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=utf-8>
<title>Ajax gebruiken als timer</title>
</head>
<body>
<div id="message">
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function($) { // wordt uitgevoerd als de pagina geladen is
var index = 0;
var interval = 5000; // mijn interval staat op 5 seconden. Pas zelf maar aan (30 minuten = 1000 * 60 * 30 ms)
sendTweet(); // de timer op gang trekken
// functie de de tweet verzendt.
function sendTweet() {
$.ajax({
url: 'test.php?ajax=1&index=' + index,
success: function(message) {
if (message == '') {
return false; // na de laatste tweet stoppen we de timer
}
// boodschap tonen in de div
$('#message').html(message);
// index incrementeren en de functie opnieuw uitvoeren. zo lang php een boodschap blijft sturen.
index++;
setTimeout(
sendTweet,
interval
); // sendTweet() opnieuw uitvoeren over ... seconden/minuten
}
})
}
})
</script>
</body>
</html>
?>
Gewijzigd op 04/10/2012 15:27:41 door Marco Hendriks
Dat zou dus willen zeggen dat lijn 9:
( $tweet2 = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret); )
niet gelukt is en geen object terug geeft.
Test dit eens door op lijn 10 dit te zetten:
Ik zou dus verwachten dat dat geen object is.
En het klopt wat je zegt omdat het geen objecten zijn geeft hij deze fout melding. Ik dacht dat je het kon oplossen door middel van ( $tweet2 = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret); ) aan tepassen maar hoe....