我目前正在使用 org.iotashan.oauth.* 包 (https://github.com/iotashan/oauth-as3/tree/master/src/org/iotashan/oauth) 在 AS3/Adobe 中处理我的 Twitter OAuth空气。我正在使用 HTMLLoader 加载允许权限对话框并侦听位置更改事件以获取验证者、排队以授权令牌等。我已获得身份验证工作并让 Twitter 成功向我发送令牌并成功授权访问令牌的令牌。但是当我尝试做一个测试帖子时,我不断收到以下错误。这是我成功获取访问令牌的事件处理程序:
protected function handleTwitterOAuthAccessTokenLoadComplete( evt:Event ):void
{
_twitterAccessToken = OAuthUtil.getTokenFromResponse( evt.target.data );
trace( "THE ACCESS TOKEN:", _twitterAccessToken.key );
//Code to send out a test tweet to logged in Twitter user's account
var oauthRequest:OAuthRequest =
new OAuthRequest(
OAuthRequest.HTTP_MEHTOD_POST, "https://api.twitter.com/1/statuses/update.json",
{},
_twitterOAuthConsumer, _twitterAccessToken
);
var request:URLRequest = new URLRequest(oauthRequest.requestURL);
request.requestHeaders.push( oauthRequest.buildRequest( _twitterOAuthSignature, OAuthRequest.RESULT_TYPE_HEADER) );
request.method = URLRequestMethod.POST;
request.data = new URLVariables( "scope=hello" );
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener( Event.COMPLETE, function( evt:Event ):void
{
trace( evt.target.data );
} );
urlLoader.addEventListener( IOErrorEvent.IO_ERROR, function( evt:IOErrorEvent ):void
{
trace("ERROR");
trace( evt.currentTarget.data );
} );
urlLoader.load( request );
}
我从服务器得到的错误是:
{"error":"Could not authenticate with OAuth.","request":"\/statuses\/update.json"}
我检查了正在发送的标头,它与 Twitter OAuth 工具(在 Twitter 上的应用程序设置页面中)告诉我的内容非常匹配。我不知道还能尝试什么。以下是标题的内容:
Authorization: OAuth oauth_timestamp="1346276194",
oauth_token="14815835-[REMOVED FOR STACK OVERFLOW]",
oauth_signature="Vj%2FTjbV%2FumMKS66yK8VMXSv%2Fpl4%3D",
oauth_consumer_key="bUka[REMOVED FOR STACK OVERFLOW]",
oauth_signature_method="HMAC-SHA1",
oauth_version="1.0",
oauth_nonce="74C5E2D8-D805-9B04-6353-7450770E1056"
Twitter OAuth 工具告诉我它应该是这样的:
Authorization: OAuth oauth_consumer_key="bUka[REMOVED FOR STACK OVERFLOW]",
oauth_nonce="95a9ef376211a67f550e55a32ad307e4",
oauth_signature="avFkHD4d9fPRv9iE4OuczEI2AOU%3D",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1346268740",
oauth_token="14815835-[REMOVED FOR STACK OVERFLOW]",
oauth_version="1.0"
如您所见,一切似乎都匹配...包括 oauth_token。