コードはhttp://gdatatips.blogspot.com/2008/11/2-legged-oauth-in-php.htmlに基づいています。
これが私のコードです。GoogleDoc(ドキュメントリスト)APIを使用したいと思います。
$endpoint = 'https://www.google.com/accounts/OAuthGetRequestToken';
$consumer = new OAuthConsumer(GOOGLE_API_DOCLIST_CONSUMER_KEY, GOOGLE_API_DOCLIST_CONSUMER_SECRET, NULL);
$arrParams = array(
'scope' => 'https://docs.google.com/feeds/'
,'xoauth_requestor_id' => GOOGLE_API_DOCLIST_USER_EMAIL
);
$req = OAuthRequest::from_consumer_and_token($consumer, NULL, "GET", $endpoint, $arrParams);
$req->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $consumer, null);
$curl = new Auth_Curl();
$content = $curl->request($req->to_url());
$docAPI = new GoogleAPI_DocumentList(new Auth_Curl(), $req->to_header());
var_dump($req->to_header());
echo '<br />-- Getting Collections list';
$url = 'https://docs.google.com/feeds/default/private/full/-/folder' . '?xoauth_requestor_id=' . GOOGLE_API_DOCLIST_USER_EMAIL;
$raw = $docAPI->getCollectionList($url);
var_dump($raw);
die();
私は常に得ます:
トークンが無効です-AuthSubトークンが無効です。
私は何を間違っているのですか?
編集:ここにいくつかの「ヒント」があります:
- APIエンドポイントとベースフィードが混在しているようです。エンドポイントにOAuthGetRequestTokenを配置しました。有効な応答を生成しているようです。
- 私はそれを保持しましたが、xoauth_requestor_idが必要かどうかわかりません。
- ドキュメントには、Authorizationヘッダーのパラメーターを区切るためにスペースを使用するように指示されています。ライブラリはコンマを使用します。