Zend_Service_TwitterコンポーネントはまだTwitters API v1.0用ですが、2013年3月5日に非推奨になる予定です。Twitter APIの相互作用v1.1で新しいウェブサイトを作りたかったのです。 すべてはv1.0のと正常に動作しますが、私は/1/
から/1.1/
にURLを変更した場合には、HTTPヘッダコード400とJSONのエラーメッセージで失敗します。Bad Authentication data
(コード:215)Zend_Service_Twitter - API v1.1の準備完了
要求とアクセストークンが滞在を取得するには同じとは 、何も変更せずに、すでに動作しますが、私はエラーが私が上記の取得このような資格情報を確認したい場合:私はそれにそのからZend/Service/Twitter.php
にverifyCredentialsのコードを変更し
// Take a look for the code here: http://framework.zend.com/manual/1.12/en/zend.oauth.introduction.html
$accessToken = $twitterAuth->getAccessToken($_GET, unserialize($_SESSION['TWITTER_REQUEST_TOKEN']));
// I have a valid access token and now the problematic part
$twitter = new Zend_Service_Twitter(array(
'username' => $accessToken->getParam('screen_name'),
'accessToken' => $accessToken
));
print_r($twitter->account->verifyCredentials());
:
あなたは(余りにと
realm
)
oauth_consumer_key
が空で見ることができたよう
print_r($this->_localHttpClient->getLastRequest());
// And I get this output of it:
GET /1.1/account/verify_credentials.json HTTP/1.1
Host: api.twitter.com
Connection: close
Accept-encoding: gzip, deflate
User-Agent: Zend_Http_Client
Accept-Charset: ISO-8859-1,utf-8
Authorization: OAuth realm="",oauth_consumer_key="",oauth_nonce="91b6160db351060cdf4c774c78e2d0f2",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1349107209",oauth_version="1.0",oauth_token="hereismytoken",oauth_signature="hereisavalidsignature"
:
public function accountVerifyCredentials()
{
$this->_init();
$response = $this->_get('/1/account/verify_credentials.xml');
return new Zend_Rest_Client_Result($response->getBody());
}
// to
public function accountVerifyCredentials()
{
$this->_init();
$response = $this->_get('/1.1/account/verify_credentials.json');
return Zend_Json::decode($response->getBody());
}
は、今私はreturn Zend_Json[...]
前にこの行を追加しました。それはエラーでしょうか?このエラーを解決するにはどうすればよいですか(より厳しい新しいAPIバージョンのために)?どういうわけかoauth_consumer_key
を設定しても問題ありませんか?はいの場合、どうすればそれを管理できますか?
編集: 私もすでにZend Frameworkのの問題追跡のバグレポートが見つかりました: http://framework.zend.com/issues/browse/ZF-12409を(多分upvoteしていますか?)
。 Zendがそれを書いていないと、それは別の名前空間にあるべきではありませんか?私はそれがちょうど微妙なことであることを認識していますが、クラスをオーバーライドする場合は、別の名前空間を使用することをお勧めします。 – voidstate
これはほんの一例です。 – yAnTar