Ik heb een aantal twitteraccounts die vanuit een database op mijn server tweeten. Sinds de Api update van twitter van 1 naar 1.1 lukt dat niet meer.
Ik heb al een nieuwe api aangemaakt met nieuwe auth codes e.d. maar ook dat wil niet helpen.
Weet weet waar het aan kan liggen?
Maarten
- Verandering in Twitter Api? Hoe krijg ik het weer werkend?
-
24-06-2013, 15:50 #1
Rinada Entertainment
- Berichten
- 1.179
- Lid sinds
- 17 Jaar
Verandering in Twitter Api? Hoe krijg ik het weer werkend?
-
In de schijnwerper
Zeer ervaren programmeur beschikbaar | web, api & appFreelance / WerkSpraakcomputers.nl - Premium domeinnaam - Medisch / communicatiemiddelenDomein te koopAutoriteit links aangeboden | Hoge DR & DA + Duizenden bezoekers. Alle NICHES vrijwelOverige deals(Premium) Hoge DA Backlink | DR 95 | RD 4,2 MiljoenAdvertentieruimte -
24-06-2013, 16:10 #2
- Berichten
- 980
- Lid sinds
- 17 Jaar
Re: Verandering in Twitter Api? Hoe krijg ik het weer werkend?
Twitter is overgestapt op oauth.
https://dev.twitter.com/blog/api-v1-is-retired
-
24-06-2013, 17:58 #3
Rinada Entertainment
- Berichten
- 1.179
- Lid sinds
- 17 Jaar
Re: Verandering in Twitter Api? Hoe krijg ik het weer werkend?
Hallo Daniël,
Dat weet ik. Ik kan alleen niet opmaken hoe ik eea nu weer werkend krijg onder 1.1...
-
24-06-2013, 20:22 #4
- Berichten
- 200
- Lid sinds
- 15 Jaar
Re: Verandering in Twitter Api? Hoe krijg ik het weer werkend?
Waarom lees je niet gewoon eens door wat er is veranderd? Ja even op deuren in trappen hoor maar dit lijkt me toch logisch?
Wij weten niet wat je voor code gebruikt, dus wij kunnen je ook totaal - niets - aan specifieke info geven wat je moet veranderen.
In het kort moet je Oauth gaan gebruiken, en wat dingen van 1.0 naar 1.1 veranderen.. rest is meer specifiek.
-
25-06-2013, 08:37 #5
Rinada Entertainment
- Berichten
- 1.179
- Lid sinds
- 17 Jaar
Re: Verandering in Twitter Api? Hoe krijg ik het weer werkend?
- Geverifieerde & niet-geverifieerde aanvragen tot api. twitter . COM / 1 / * zal ontvangen HTTP 410 Gone . Gebruik in plaats daarvan API v1.1.
Bovenstaande is wat er gebeurd. Ik krijg een 410 meldingen en de oplossing is gebruik API 1.1. Maar hoe ik dat moet doen staat er niet. - Ik heb al veel gelezen maar veel wijzer word ik er niet van...
-
25-06-2013, 10:15 #6
- Berichten
- 980
- Lid sinds
- 17 Jaar
Re: Verandering in Twitter Api? Hoe krijg ik het weer werkend?
Als je nou eens begint met vertellen hoe het voorheen bij jou werkte, kunnen we zeggen of je alleen een class moet vervangen of dat je je hele code moet herschrijven.
Bottomline van de wijziging is dat de oude manier van de api (versie 1.0) niet meer werkt in 1.1. Je zult dus de documentatie moeten gebruiken om de calls op de juiste manier te wijzigen zodat ze wel weer werken.
-
25-06-2013, 11:21 #7
Rinada Entertainment
- Berichten
- 1.179
- Lid sinds
- 17 Jaar
Re: Verandering in Twitter Api? Hoe krijg ik het weer werkend?
Hallo Daniël,
Bedankt voor je reactie!
Ik ben niet zo heel technisch (misschien wel gemerkt ;) dus ik laat hier de code zien van de twitteroauth pagina:
<?php
/*
* Abraham Williams () http://abrah.am
*
* The first PHP Library to support OAuth for Twitter's REST API.
*/
/* Load OAuth lib. You can find it at http://oauth.net */
require_once('OAuth.php');
/**
* Twitter OAuth class
*/
class TwitterOAuth {
/* Contains the last HTTP status code returned. */
public $http_code;
/* Contains the last API call. */
public $url;
/* Set up the API root URL. */
public $host = "https://api.twitter.com/1/";
/* Set timeout default. */
public $timeout = 30;
/* Set connect timeout. */
public $connecttimeout = 30;
/* Verify SSL Cert. */
public $ssl_verifypeer = FALSE;
/* Respons format. */
public $format = 'json';
/* Decode returned json data. */
public $decode_json = TRUE;
/* Contains the last HTTP headers returned. */
public $http_info;
/* Set the useragnet. */
public $useragent = 'TwitterOAuth v0.2.0-beta2';
/* Immediately retry the API call if the response was not successful. */
//public $retry = TRUE;
/**
* Set API URLS
*/
function accessTokenURL() { return 'https://api.twitter.com/oauth/access_token'; }
function authenticateURL() { return 'https://twitter.com/oauth/authenticate'; }
function authorizeURL() { return 'https://twitter.com/oauth/authorize'; }
function requestTokenURL() { return 'https://api.twitter.com/oauth/request_token'; }
/**
* Debug helpers
*/
function lastStatusCode() { return $this->http_status; }
function lastAPICall() { return $this->last_api_call; }
/**
* construct TwitterOAuth object
*/
function __construct($consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL) {
$this->sha1_method = new OAuthSignatureMethod_HMAC_SHA1();
$this->consumer = new OAuthConsumer($consumer_key, $consumer_secret);
if (!empty($oauth_token) && !empty($oauth_token_secret)) {
$this->token = new OAuthConsumer($oauth_token, $oauth_token_secret);
} else {
$this->token = NULL;
}
}
/**
* Get a request_token from Twitter
*
* @returns a key/value array containing oauth_token and oauth_token_secret
*/
function getRequestToken($oauth_callback = NULL) {
$parameters = array();
if (!empty($oauth_callback)) {
$parameters['oauth_callback'] = $oauth_callback;
}
$request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
$token = OAuthUtil::parse_parameters($request);
$this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
return $token;
}
/**
* Get the authorize URL
*
* @returns a string
*/
function getAuthorizeURL($token, $sign_in_with_twitter = TRUE) {
if (is_array($token)) {
$token = $token['oauth_token'];
}
if (empty($sign_in_with_twitter)) {
return $this->authorizeURL() . "?oauth_token={$token}";
} else {
return $this->authenticateURL() . "?oauth_token={$token}";
}
}
/**
* Exchange request token and secret for an access token and
* secret, to sign API calls.
*
* @returns array("oauth_token" => "the-access-token",
* "oauth_token_secret" => "the-access-secret",
* "user_id" => "9436992",
* "screen_name" => "abraham")
*/
function getAccessToken($oauth_verifier = FALSE) {
$parameters = array();
if (!empty($oauth_verifier)) {
$parameters['oauth_verifier'] = $oauth_verifier;
}
$request = $this->oAuthRequest($this->accessTokenURL(), 'GET', $parameters);
$token = OAuthUtil::parse_parameters($request);
$this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
return $token;
}
/**
* One time exchange of username and password for access token and secret.
*
* @returns array("oauth_token" => "the-access-token",
* "oauth_token_secret" => "the-access-secret",
* "user_id" => "9436992",
* "screen_name" => "abraham",
* "x_auth_expires" => "0")
*/
function getXAuthToken($username, $password) {
$parameters = array();
$parameters['x_auth_username'] = $username;
$parameters['x_auth_password'] = $password;
$parameters['x_auth_mode'] = 'client_auth';
$request = $this->oAuthRequest($this->accessTokenURL(), 'POST', $parameters);
$token = OAuthUtil::parse_parameters($request);
$this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
return $token;
}
/**
* GET wrapper for oAuthRequest.
*/
function get($url, $parameters = array()) {
$response = $this->oAuthRequest($url, 'GET', $parameters);
if ($this->format === 'json' && $this->decode_json) {
return json_decode($response);
}
return $response;
}
/**
* POST wrapper for oAuthRequest.
*/
function post($url, $parameters = array()) {
$response = $this->oAuthRequest($url, 'POST', $parameters);
if ($this->format === 'json' && $this->decode_json) {
return json_decode($response);
}
return $response;
}
/**
* DELETE wrapper for oAuthReqeust.
*/
function delete($url, $parameters = array()) {
$response = $this->oAuthRequest($url, 'DELETE', $parameters);
if ($this->format === 'json' && $this->decode_json) {
return json_decode($response);
}
return $response;
}
/**
* Format and sign an OAuth / API request
*/
function oAuthRequest($url, $method, $parameters) {
if (strrpos($url, 'https://') !== 0 && strrpos($url, 'http://') !== 0) {
$url = "{$this->host}{$url}.{$this->format}";
}
$request = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, $method, $url, $parameters);
$request->sign_request($this->sha1_method, $this->consumer, $this->token);
switch ($method) {
case 'GET':
return $this->http($request->to_url(), 'GET');
default:
return $this->http($request->get_normalized_http_url(), $method, $request->to_postdata());
}
}
/**
* Make an HTTP request
*
* @return API results
*/
function http($url, $method, $postfields = NULL) {
$this->http_info = array();
$ci = curl_init();
/* Curl settings */
curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);
curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
curl_setopt($ci, CURLOPT_HEADER, FALSE);
switch ($method) {
case 'POST':
curl_setopt($ci, CURLOPT_POST, TRUE);
if (!empty($postfields)) {
curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
}
break;
case 'DELETE':
curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
if (!empty($postfields)) {
$url = "{$url}?{$postfields}";
}
}
curl_setopt($ci, CURLOPT_URL, $url);
$response = curl_exec($ci);
$this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
$this->http_info = array_merge($this->http_info, curl_getinfo($ci));
$this->url = $url;
curl_close ($ci);
return $response;
}
/**
* Get the header info to store.
*/
function getHeader($ch, $header) {
$i = strpos($header, ':');
if (!empty($i)) {
$key = str_replace('-', '_', strtolower(substr($header, 0, $i)));
$value = trim(substr($header, $i + 2));
$this->http_header[$key] = $value;
}
return strlen($header);
}
}
Kun je hier wat mee of heb je nog meer nodig?
-
25-06-2013, 11:40 #8
- Berichten
- 363
- Lid sinds
- 16 Jaar
Re: Verandering in Twitter Api? Hoe krijg ik het weer werkend?
Probeer eerst eens:
public $host = "https://api.twitter.com/1/";
Te vervangen door:
public $host = "https://api.twitter.com/1.1/";
Volgens mij is de status/update method niet verandert, dus dan zou dit moeten werken.
-
25-06-2013, 12:45 #9
- Berichten
- 980
- Lid sinds
- 17 Jaar
Re: Verandering in Twitter Api? Hoe krijg ik het weer werkend?
Je gebruikt dus een bestaande class. Lijkt me handig als je er eentje gaat gebruiken die wel api 1.1 ondersteund..
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic