[Tw OAuth] Tweeten vanaf account
Ik ben bezig met een scriptje om te tweeten vanaf één account, maar het wilt maar niet werken..
De key/secrets/token is goed ingevuld, ook zijn de gegevens van het twitter account juist ingevuld. Ook is twitteroauth.php gewoon bereikbaar.
Wanneer ik de pagina bezoek, krijg ik een blanco witte pagina te zien.
Iemand enig idee wat ik fout doe/vergeet?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Insert your keys/tokens
$consumerKey = 'geheim';
$consumerSecret = 'geheim';
$OAuthToken = 'geheim';
$OAuthSecret = 'geheim';
// Full path to twitteroauth.php (change oauth to your own path)
require_once('twitteroauth.php');
function getConnectionWithAccessToken($OAuthToken, $OAuthSecret) {
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret);
return $connection;
}
$connection = getConnectionWithAccessToken("Gebruikersnaam", "Wachtwoord");
// Your Message
$message = "This is a test message..";
// Send tweet
$connection->post('statuses/update', array('status' => "$message"));
$consumerKey = 'geheim';
$consumerSecret = 'geheim';
$OAuthToken = 'geheim';
$OAuthSecret = 'geheim';
// Full path to twitteroauth.php (change oauth to your own path)
require_once('twitteroauth.php');
function getConnectionWithAccessToken($OAuthToken, $OAuthSecret) {
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $oAuthToken, $oAuthSecret);
return $connection;
}
$connection = getConnectionWithAccessToken("Gebruikersnaam", "Wachtwoord");
// Your Message
$message = "This is a test message..";
// Send tweet
$connection->post('statuses/update', array('status' => "$message"));
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Insert your keys/tokens
$consumerKey = 'geheim';
$consumerSecret = 'geheim';
$OAuthToken = 'geheim';
$OAuthSecret = 'geheim';
// Full path to twitteroauth.php (change oauth to your own path)
require_once('twitteroauth.php');
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $OAuthToken, $OAuthSecret);
// Your Message
$message = "This is a test message..";
// Send tweet
$response = $connection->post('statuses/update', array('status' => "$message"));
var_dump($response);
?>
$consumerKey = 'geheim';
$consumerSecret = 'geheim';
$OAuthToken = 'geheim';
$OAuthSecret = 'geheim';
// Full path to twitteroauth.php (change oauth to your own path)
require_once('twitteroauth.php');
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $OAuthToken, $OAuthSecret);
// Your Message
$message = "This is a test message..";
// Send tweet
$response = $connection->post('statuses/update', array('status' => "$message"));
var_dump($response);
?>
En welke library gebruik je? Als het een oude library is, zou het kunnen dat hij nog de vervallen versie 1.0 gebruikt.
Gewijzigd op 23/07/2013 11:44:29 door Koen Vlaswinkel
Koen Vlaswinkel op 23/07/2013 11:40:01:
Probeer dit eens:
En welke library gebruik je? Als het een oude library is, zou het kunnen dat hij nog de vervallen versie 1.0 gebruikt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Insert your keys/tokens
$consumerKey = 'geheim';
$consumerSecret = 'geheim';
$OAuthToken = 'geheim';
$OAuthSecret = 'geheim';
// Full path to twitteroauth.php (change oauth to your own path)
require_once('twitteroauth.php');
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $OAuthToken, $OAuthSecret);
// Your Message
$message = "This is a test message..";
// Send tweet
$response = $connection->post('statuses/update', array('status' => "$message"));
var_dump($response);
?>
$consumerKey = 'geheim';
$consumerSecret = 'geheim';
$OAuthToken = 'geheim';
$OAuthSecret = 'geheim';
// Full path to twitteroauth.php (change oauth to your own path)
require_once('twitteroauth.php');
$connection = new TwitterOAuth($consumerKey, $consumerSecret, $OAuthToken, $OAuthSecret);
// Your Message
$message = "This is a test message..";
// Send tweet
$response = $connection->post('statuses/update', array('status' => "$message"));
var_dump($response);
?>
En welke library gebruik je? Als het een oude library is, zou het kunnen dat hij nog de vervallen versie 1.0 gebruikt.
Hey,
Ik krijg inderdaad:
object(stdClass)#4 (1) { ["errors"]=> array(1) { [0]=> object(stdClass)#5 (2) { ["message"]=> string(119) "The Twitter REST API v1 is no longer active. Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview." ["code"]=> int(68) } } }
Hoe update ik deze?
Is dat een kwestie van:
public $host = "https://api.twitter.com/1/";
aanpassen naar:
public $host = "https://api.twitter.com/1.1/";
Zodra ik dat doe, krijg ik:
object(stdClass)#4 (1) { ["errors"]=> array(1) { [0]=> object(stdClass)#5 (2) { ["message"]=> string(23) "Bad Authentication data" ["code"]=> int(215) } } }
https://github.com/abraham/twitteroauth gebruikt, kan je een nieuwe versie downloaden/clonen. Maar de tweede error wijst erop dat je consumer key, consumer secret, oauth key of oauth secret niet correct is. Heb je deze correct gekopieerd vanaf dev.twitter.com?
Als je object(stdClass)#4 (1) { ["errors"]=> array(1) { [0]=> object(stdClass)#5 (2) { ["message"]=> string(23) "Bad Authentication data" ["code"]=> int(215) } } }
Heb ook even alle gegevens gecontroleerd, en die kloppen. Heb jij toevallig ook een app geregistreerd @ Twitter dev? Misschien kun jij hem testen
Gewijzigd op 23/07/2013 12:54:04 door PHP er
Bij mij doet hij het gewoon. Heb je je consumer key en consumer secret direct gekopieerd vanaf dev.twitter.com? En heb je nadat je op Create access token hebt gedrukt de access token en access secret gekopieerd in $OAuthToken en $OAuthSecret?
Koen Vlaswinkel op 23/07/2013 12:57:17:
Bij mij doet hij het gewoon. Heb je je consumer key en consumer secret direct gekopieerd vanaf dev.twitter.com? En heb je nadat je op Create access token hebt gedrukt de access token en access secret gekopieerd in $OAuthToken en $OAuthSecret?
Ik heb alle sleutels en tokens even gereset, en opnieuw ingevoegd. Ook staat de access van de app op 'Read and write'. Alsnog de melding..
Zag ook dat het betreffende Twitter account, het e-mail adres niet bevestigd was, ook dat heb ik even gedaan maar dat helpt niet.
Ook bij
Heb ik de juiste gegevens van het Twitter account ingevoegd.
Heb jij nog ideeën?
Je hoeft de gebruikersnaam en het wachtwoord niet mee te geven! Probeer de code die ik eerder heb gegeven, je hoeft alleen maar die 4 tokens in te vullen, voor de rest geen wachtwoord of gebruikersnaam.
Koen Vlaswinkel op 23/07/2013 13:17:15:
Je hoeft de gebruikersnaam en het wachtwoord niet mee te geven! Probeer de code die ik eerder heb gegeven, je hoeft alleen maar die 4 tokens in te vullen, voor de rest geen wachtwoord of gebruikersnaam.
Maar, hoe tweet het systeem dan vanaf dat account?
Ik maak ook gebruik van twitteroauth.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, AUTH_TOKEN, AUTH_SECRET);
$strText = 'test';
$connection->post('statuses/update', array('status' => utf8_encode($strText)));
?>
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, AUTH_TOKEN, AUTH_SECRET);
$strText = 'test';
$connection->post('statuses/update', array('status' => utf8_encode($strText)));
?>
Gewijzigd op 23/07/2013 13:24:48 door gerhard l
Het doel van de app, die ik wil maken is dat ik wil dat er uit de mysql database, elke dag om 11:00 een bepaalde naam tweet (op basis van cronjobs).
Hoe kan ik dat dan maken, dat de oAuth verbinding maakt met dát account?
(Ik heb inmiddels de app geautoriseerd via Abraham's OAuth
Hmm, ik begin maar opnieuw met coden haha.
Het doel van de app, die ik wil maken is dat ik wil dat er uit de mysql database, elke dag om 11:00 een bepaalde naam tweet (op basis van cronjobs).
Hoe kan ik dat dan maken, dat de oAuth verbinding maakt met dát account?
(Ik heb inmiddels de app geautoriseerd via Abraham's OAuth
Ik heb nu via echo print_r($_SESSION['access_token']); de access token en token secret, die heb ik nu ingesteld als:
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
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
<?php
/**
* @file
* User has successfully authenticated with Twitter. Access tokens saved to session and DB.
*/
/* Load required lib files. */
session_start();
require_once('twitteroauth/twitteroauth.php');
require_once('config.php');
$oauth_token = 'geheim';
$token_secret = 'geheim';
/* Get user access tokens out of the session. */
$access_token = $oauth_token;
/* Create a TwitterOauth object with consumer/user tokens. */
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $oauth_token, $token_secret);
/* If method is set change API call made. Test is called by default. */
$message = 'test';
$connection->post('statuses/update', array('status' => "$message"));
?>
/**
* @file
* User has successfully authenticated with Twitter. Access tokens saved to session and DB.
*/
/* Load required lib files. */
session_start();
require_once('twitteroauth/twitteroauth.php');
require_once('config.php');
$oauth_token = 'geheim';
$token_secret = 'geheim';
/* Get user access tokens out of the session. */
$access_token = $oauth_token;
/* Create a TwitterOauth object with consumer/user tokens. */
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $oauth_token, $token_secret);
/* If method is set change API call made. Test is called by default. */
$message = 'test';
$connection->post('statuses/update', array('status' => "$message"));
?>
Beetje een noob-vraag maar, blijft deze nu voor altijd werken, als ik het instel in cronjobs?
Gewijzigd op 23/07/2013 13:51:52 door PHP er
Gerhard l op 23/07/2013 13:59:03:
Als jij zeker weet dat de tokens kloppen, zal dit blijven werken. Alleen let op: twitter laat je niet 2x hetzelfde achter elkaar tweeten, en zal je dus een error terug geven als je nog een keer probeert test te tweeten.
edit: $message hoeft niet tussen aanhalingstekens.
edit: $message hoeft niet tussen aanhalingstekens.
Aha, helemaal toppie :-)
Het tweeten werkt nu inderdaad, nu kan ik weer verder bouwen!
Bedankt beiden! :D