web-dev-qa-db-ja.com

アプリアクセストークンを取得しようとしています

このコードを使用して、Facebookアプリのapp-access-tokenを取得しようとしました。

APP_ACCESS_TOKEN = FB.api(
    "oauth/access_token",
    {client_id: APP_ID, client_secret: APP_SECRET_CODE, redirect_uri: uri},
    function(response){
    console.log(response);
});

次のようになります:

GET https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID
       &client_secret=YOUR_APP_SECRET
       &redirect_uri=uri

しかし、私はエラーが発生します:

code: 1
message: "Missing authorization code"
type: "OAuthException"

認証コードとは何ですか?

42
Franz Deschler

アプリアクセストークンの取得

アプリアクセストークンを取得するには、次のHTTP GETリクエストを呼び出します。

GET https://graph.facebook.com/oauth/access_token?
            client_id=YOUR_APP_ID
           &client_secret=YOUR_APP_SECRET
           &grant_type=client_credentials

APIは、次の形式のクエリ文字列形式の文字列で応答します。

access_token=YOUR_APP_ID|YOUR_APP_ACCESS_TOKEN

リファレンス: http://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/

66
Avantaj Tvm

https://developers.facebook.com/docs/howtos/login/login-as-app/

「アプリシークレットを含める必要があるので、この呼び出しをクライアント側にしようとしないでください。このシークレットはすべてのアプリユーザーに公開されるためです。 アプリのシークレットを誰とも共有しないことが重要です。このため、この呼び出しはサーバー側で実行する必要があります」

また、アプリのアクセストークンについても同じです。クライアント側でuseを使用しないでください。すべてのユーザーがそこを見つけて、代わりに使用してアクションを実行できるためですアプリ(またはアプリの多くの設定を変更)。

アプリケーションにサーバー側の部分がある場合は、自分でアプリアクセストークンを「ビルド」し、アプリIDとシークレットをパイプ記号app_id|app_secret

46
CBroe

node.jsまたはJAVASCRIPTのユーザーかどうかを確認します。

getLongLiveToken: function(data){
    FB.api('oauth/access_token', {
        client_id: data.client_id, // FB_APP_ID
        client_secret: data.secret, // FB_APP_SECRET
        grant_type: 'fb_exchange_token',
        fb_exchange_token: data.access_token // USER_TOKEN
    }, function (res) {
        if (!res || res.error) {
            console.log(!res ? 'error occurred' : res.error);
        } else {
            var accessToken = res.access_token;
            if(typeof accessToken != 'undefined'){}
        }
    });
}
1
ankur

トークンを生成せずに、このPOSTエンドポイントを使用することもできます。app_secretが公開されているクライアント側ではなく、サーバーから呼び出されることを確認してください。

https://graph.facebook.com/?id={url}&scrape=true&access_token={app_id}|{app_secret}
0
jasan

コードでAPPクライアントシークレットを公開するのが良い考えかどうかわかりません。Facebookツール「Access Token Tool」からAPPトークンを取得して、コードを使用するためにトークンをコピーするだけです https://developers.facebook.com/tools-and-support/

0
kimo