这是我在尝试创建新内容时不断得到的响应
活动:
{"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 = "
xmlns:activity='http://activitystrea.ms/spec/1.0'>
http://activitystrea.ms/schema/1.0/
note
$statusMessage
";//$client->setRawData($dataXml);
$client->setRawData(Zend_Json::encode($data));
//$client->setParameterPost("content", $statusMessage);
$response = $client->request();
**正如你所看到的,我用xml原子和.进行了一些测试
json要求 – 两者都没有太大的运气.
你能看到任何明显的错误吗?另一个提醒我,我
我正在使用Zend_Oauth.