新しいアクティビティを作成しようとしたときに得られる応答は次のとおりです。
{"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 + atomリクエストとjsonリクエストの両方で少しテストを行いましたが、どちらもあまりうまくいきませんでした。
そこに明らかに間違っていることがわかりますか?また、Zend_Oauthを使用していることを思い出してください。