OAuthでYouTubeサービスを使用しようとしています。私は要求トークンを取得し、それを認可し、それらをアクセストークンに変換することができました。OAuthとYouTube API
今、これらのトークンを使用してYouTubeサービスへのリクエストを実際に行っています。たとえば、私はプレイリストにビデオを追加しようとしています。したがって、私は
<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
xmlns:yt="http://gdata.youtube.com/schemas/2007">
<id>XXXXXXXXX</id>
</entry>
のとヘッダ
Gdata-version: 2
Content-type: application/atom+xml
Authorization: OAuth oauth_consumer_key="www.xxxxx.xx",
oauth_nonce="xxxxxxxxxxxxxxxxxxxxxxxxx",
oauth_signature="XXXXXXXXXXXXXXXXXXX",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1310985770",
oauth_token="1%2FXXXXXXXXXXXXXXXXXXXX",
oauth_version="1.0"
X-gdata-key: key="XXXXXXXXXXXXXXXXXXXXXXXXX"
プラスいくつかの標準ヘッダとボディを送信
https://gdata.youtube.com/feeds/api/playlists/XXXXXXXXXXXX
にPOSTリクエストを作っています(ホストとのContent-Length)リクエストの瞬間にurllib2(私はPythonを使用しています)によって追加されます。
は残念ながら、私はError 401: Unknown authorization header
を取得し、レスポンスのヘッダは、私がその領域のClientLoginにヒントWWW-Authenticateヘッダを解釈する方法がわからない。特に
X-GData-User-Country: IT
WWW-Authenticate: GoogleLogin service="youtube",realm="https://www.google.com/youtube/accounts/ClientLogin"
Content-Type: text/html; charset=UTF-8
Content-Length: 179
Date: Mon, 18 Jul 2011 10:42:50 GMT
Expires: Mon, 18 Jul 2011 10:42:50 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Connection: close
です。
私もOAuth Playgroundでプレイしようとしましたが、そのサイトから送信されたAuthorizationヘッダーは、フィールドの順番を除いて私と全く同じように見えます。それでも、plyagroundではすべてが機能します。まあ、ほぼ:開発者キーが見つからないというエラーが表示されますが、これはプレイグランドに追加する方法がないため妥当です。それでも、私はエラー401を過ぎています。
また、そこからAuthorizationヘッダーを手動でコピーしようとしましたが、Error 400: Bad request
があります。
私は間違っていますか?
あなた自身の答えを受け入れます。 – akira