VKプラットフォームでのOAuth 2.0のサポート

昨日、VKontakteはOAuth 2.0オープン認証標準のサポートを追加しました。 これで、サイトとクライアントアプリケーションをソーシャルネットワークと統合することがはるかに簡単になりました。







新しい承認システムのドキュメントのあるページには、サーバーとクライアントの2種類の承認がサポートされていることが記載されています。



開発者のサーバーは、外部サイトの承認手順を通過した後、ユーザーの介入なしにいつでもVKontakte APIへのリクエストを処理できます。 「永遠の」セッションを取得するには、承認ダイアログを開くときにパラメータscope = offlineを追加するだけです。



デスクトップおよびモバイルアプリケーションのクライアント認証もサポートされています。 OAuth 2.0プロトコルの目新しさにもかかわらず、彼のサイトでは、ほとんどの一般的なプログラミング言語のライブラリを見つけることができます。



VKontakteでのOAuthサポートの外観に加えて、APIと対話する方法が変更されました。 現在、すべての要求は安全なHTTPSプロトコルを介して送信されるため、各要求に署名する必要はありません。



たとえば、ユーザーのウォールから公開ステータスを受け取るには、アドレスに連絡するだけで十分です。



https://api.vk.com/method/wall.get?owner_id=1



ユーザーのプライベートデータを取得するには、access_tokenパラメーターを追加するだけで、許可された要求を満たす必要があります。 これは、認可手順を通過した結果として取得される標準アクセスキーです。



wall.getなどの多くのメソッドは公開されており、承認を必要としないため、これがどのように機能するかを示す小さな例を用意しました。



http://skdy.org/illarionov (アドレスには、任意のユーザーの短縮名またはIDを指定できます。)



VK認証の簡単な例:



1)[Enter VKontakte]ボタンをクリックすると、フォームのアドレスにリダイレクトする必要があります。



http://api.vk.com/oauth/authorize?client_id=2271023&redirect_uri=http://skdy.org/illarionov&display=page



<button onclick="location.href='http://api.vk.com/oauth/authorize?client_id=2271023&redirect_uri=http://skdy.org/illarionov&display=page';"> </button>





2)ユーザーが必要なアクションを実行した後、エラーが発生した場合、パラメーターコードまたはエラーとerror_descを使用して、指定されたコールバックにリダイレクトされます。



3)コードを受け取った後、すでにサーバー側から次の連絡先にアクセスしてaccess_tokenを取得できます。



https://api.vk.com/oauth/token?client_id=2271023&code=xxx&client_secret=xxxで、保護されたキーをclient_secretとして指定する必要があります。これは、アプリケーション編集フォームで取得できます。



$code = $_GET[ 'code' ];

$secret = 'xxx' ;

$resp = file_get_contents( 'https://api.vk.com/oauth/token?client_id=2271023&code=' .$code. '&client_secret=' .$secret);

$data = json_encode($resp, true );

if ($data[ 'access_token' ]) {

// API

}


* This source code was highlighted with Source Code Highlighter .






それだけです。受け取ったaccess_tokenにより、APIを操作できます。



All Articles