本当に完全にOAuth2.0へのアクセスを許可するために、外部のページを訪問バイパスする(私が見つけたことを)方法はありません。 最も近いのは、code.google.com/apis/consoleに「インストールされたアプリケーション」プロジェクトを作成し、デバイスの方法論を使用することです。 クライアントIDとクライアント秘密を受け取ります。これらは後で使用されます。 開発者用のキーを生成するのは理想的ですが、現時点ではこれが必須とは思われませんが、code.google.com/apis/youtube/dashboard/
ヘッダーと応答にはJSON表記を使用しています。あなたの選択した言語に簡単に適応できるはずです。
{
client_id: 'YOUR_CLIENT_ID',
scope: 'https://gdata.youtube.com'
}
YOUR_CLIENT_IDがクライアントである:
まず、ヘッダ
{
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length,
'X-GData-Key': 'key=YOUR_DEVELOPER_KEY'
}
と含むデータでaccounts.google.com/o/oauth2/device/codeするPOSTリクエストを行います以前設定したGoogle apisプロジェクトで取得したIDです。
あなたがこのような応答を取得します:
{
"device_code" : "4/Pj8m71w5XuEMTT0ZwOJVgvlTfF4Q",
"user_code" : "5wtw67wm",
"verification_url" : "http://www.google.com/device",
"expires_in" : 1800,
"interval" : 5
}
あなたはあたり30分(1800秒以内(「VERIFICATION_URL」フィールドで定義された)www.google.com/deviceを訪問していない場合は " expires_in "応答フィールド)、この最初の要求を再度実行する必要があります。 www.google.com/deviceページで、まだログインしていない場合はログインするように求められ、「user_code」レスポンスフィールドで定義されている確認コードを入力します。あなたは、アプリケーションとアプリケーションが要求している権限のリストを承認する要求が表示されます。 "device_code"フィールドの値を(少なくとも一時的に)保存します。これは、アクセストークンとリフレッシュトークンを要求するときに使用されます。
権限が付与されたので、アクセス/リフレッシュトークンのペアを要求できます。これは、リフレッシュトークンを格納している場合にのみ、一度発生する必要があります。 がトークンペアを更新/アクセスを要求するには、ヘッダー
{
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length,
'X-GData-Key': 'key=YOUR_DEVELOPER_KEY'
}
とデータ
{
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
code: 'YOUR_DEVICE_CODE',
grant_type: 'http://oauth.net/grant_type/device/1.0'
}
応答意志とaccounts.google.com/o/oauth2/tokenするPOSTリクエストを行う必要がありますこれは、アクセストークンが3600秒(60分)に有効期限が切れると、どのようなあなたの現在のアクセストークンがあり、どのようなリフレッシュトークンがあることを指定します。この
{
"access_token" : "YOUR_ACCESS_TOKEN",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "YOUR_REFRESH_TOKEN"
}
のように見えます。 現在のセッションで使用するためのアクセストークンと、将来のセッションでのリフレッシュトークンを保存する必要があります。
APIリクエストを行う場合は、アクセスヘッダをAuthorizationヘッダーフィールドに含めると同時に、開発者キーを含めておきます。あなたは古いものが期限切れになったときだけでなく、いつでもアクセストークンをリフレッシュすることができ
{
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'X-GData-Key': 'key=YOUR_DEVELOPER_KEY',
'Slug': 'video.mp4',
'Content-Type': 'multipart/related; boundary="f897a6d"',
'Content-Length': post_length,
'Connection': 'close'
}
: が動画をアップロードするために、私はこれらのヘッダを使用していました。あなたのアクセストークンを更新するには、あなたがこのような応答を取得するヘッダ
{
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': post_data.length,
'X-GData-Key': 'key=YOUR_DEVELOPER_KEY'
}
とデータ
{
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
refresh_token: 'YOUR_REFRESH_TOKEN',
grant_type: 'refresh_token'
}
とaccounts.google.com/o/oauth2/tokenするPOSTリクエストを行います
{
"access_token" : "YOUR_NEW_ACCESS_TOKEN",
"token_type" : "Bearer",
"expires_in" : 3600
}
ここで、YOUR_NEW_ACCESS_TOKENは、今後のリクエストで使用するための新しいトークンです。
これは、たとえばVideoオブジェクトのような.netライブラリに接続する方法はありますか? –