脚本宝典收集整理的这篇文章主要介绍了php – Buzz API的未知授权标头错误 – 使用Zend OAuth,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
{"error":{"errors":[{"message":"UnkNown authorization header","locationTyPE":"header","location":"Authorization"}],"code": 401,"message":"UnkNown authorization header"}}
这是我发送的请求(用于调试):
POST /buzz/v1/activITies/@me/@self?alt=JSON HTTP/1.1 Host: www.GOOGLEapis.COM Connection: close Accept-encoding: gzip,deflate User-Agent: Zend_Http_Client Content-type: application/json Authorization: OAuth realm="",oauth_consumer_key="eawp.com",oauth_nonce="ce29b04ce6648fbb92efc8f08c1c0091",oauth_signature_method="HMAC- SHA1",oauth_timestamp="1277934794",oauth_version="1.0",oauth_token="1%2FcBzo5ckGvCAm3wLWh1SDH3xQNow-- yek1NVfUa1QQns",oauth_signature="CUezSiMbvxyn1BTeb3uROlIx8gA%3D" Content-Length: 86 {"data":{"object":{"type":"note","content":"Using OAuth with Twitter - PHP Example"}}}
获取access_token的所有其他请求工作得很好,但是
现在我不太清楚为什么它不起作用.
**更新
为了帮助调试更多,这里是有问题的代码:
$config = array( //'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER,//'version' => '1.0',//'signatureMethod' => 'HMAC-sHA1','callbackUrl' => $callback,'siteUrl' => $url,'consumerKey' => $consumerKey,'consumerSecret' => $consumerPass ); $statusMessage = $title; $token = unserialize($accessToken); $client = $token->getHttpClient($config); $client->setUri('https://www.googleapis.com/buzz/v1/activities/@me/ @self?alt=json'); $client->setMethod(Zend_Http_Client::POST); $client->setEncType(Zend_Http_Client::ENC_FORMDATA); $client->setHeaders('Content-Type: application/json'); $data = array( 'data' => array( 'object' => array( 'type' => 'note','content' => $statusMessage,),); $dataxML = "<entry XMlns='http://www.w3.org/2005/Atom' xmlns:activity='http://activitystrea.ms/spec/1.0'> <activity:object> <activity:object-type>http://activitystrea.ms/schema/1.0/ note</activity:object-type> <content type='html'>$statusMessage<content> </activity:object> </entry>"; //$client->setRawData($dataxml); $client->setRawData(Zend_Json::encode($data)); //$client->setParameterPost("content",$statusMessage); $response = $client->request();
**正如你所看到的,我用xml原子和.进行了一些测试
json要求 – 两者都没有太大的运气.
使用选项:
‘requestScheme’=> Zend_Oauth :: REQUEST_SCHEME_QUERYSTRING
在你的$config数组中
PS更多代码:
$OAuthConfiguration = array( 'version' => '1.0','requestScheme' => Zend_Oauth::REQUEST_SCHEME_QUERYSTRING,'signatureMethod' => 'HMAC-SHA1','callbackUrl'=>'####','requestTokenUrl' => 'https://www.google.com/accounts/OAuthGetRequestToken','authorizeUrl' => 'https://www.google.com/buzz/api/auth/OAuthAuthorizeToken','accessTokenUrl' => 'https://www.google.com/accounts/OAuthGetAccessToken','consumerKey' => '####','consumerSecret' => '####',); $OAuthConsumer = new Zend_Oauth_Consumer($OAuthConfiguration); //authorizeOAuth $params = array( 'domain'=>'####','scope'=>'https://www.googleapis.com/auth/buzz' ); $token = $OAuthConsumer->getRequestToken($params); $_SESSION['token']['buzz'] = serialize($token); $OAuthConsumer->redirect($params); //callbackOAuth if (!empty($_GET) && isset($_SESSION['token']['buzz'])) { $token = $consumer->getAccessToken( $_GET,unserialize($_SESSION['token']['buzz']) ); unset($_SESSION['token']); return serialize($token); } else { return false; }
以上是脚本宝典为你收集整理的php – Buzz API的未知授权标头错误 – 使用Zend OAuth全部内容,希望文章能够帮你解决php – Buzz API的未知授权标头错误 – 使用Zend OAuth所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。