このコードを使用して、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"
認証コードとは何ですか?
アプリアクセストークンの取得
アプリアクセストークンを取得するには、次の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/
https://developers.facebook.com/docs/howtos/login/login-as-app/ :
「アプリシークレットを含める必要があるので、この呼び出しをクライアント側にしようとしないでください。このシークレットはすべてのアプリユーザーに公開されるためです。 アプリのシークレットを誰とも共有しないことが重要です。このため、この呼び出しはサーバー側で実行する必要があります」
また、アプリのアクセストークンについても同じです。クライアント側でuseを使用しないでください。すべてのユーザーがそこを見つけて、代わりに使用してアクションを実行できるためですアプリ(またはアプリの多くの設定を変更)。
アプリケーションにサーバー側の部分がある場合は、自分でアプリアクセストークンを「ビルド」し、アプリIDとシークレットをパイプ記号app_id|app_secret
。
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'){}
}
});
}
トークンを生成せずに、このPOSTエンドポイントを使用することもできます。app_secretが公開されているクライアント側ではなく、サーバーから呼び出されることを確認してください。
https://graph.facebook.com/?id={url}&scrape=true&access_token={app_id}|{app_secret}
コードでAPPクライアントシークレットを公開するのが良い考えかどうかわかりません。Facebookツール「Access Token Tool」からAPPトークンを取得して、コードを使用するためにトークンをコピーするだけです https://developers.facebook.com/tools-and-support/