4

私の会社には企業の Facebook アカウントがあり、イベントの写真をさまざまなアルバムに投稿しています。私の要件は、Facebook のアルバムからすべての写真を取得し、当社の企業 Web サイトに表示することです。写真を取得することはできますが、ユーザー アクセス トークンは 60 日間しか有効ではありません。つまり、2 か月ごとに会社の企業 Facebook アカウントにログインし、トークンを再生成して、アプリケーションでトークンを更新する必要があります。

永久アクセストークンを生成する方法はありますか? または、アプリケーション レベルで (ログイン ダイアログ ボックスを表示せずに) トークンを再生成する方法はありますか?

アプリを作成せずに写真を取得する他の方法はありますか?

次の手順に従いました: https://www.facebook.com/dialog/oauth?client_id=%3CCLIENT_ID%3E&scope=manage_pages&redirect_uri=この API 呼び出しからコードを取得しました。次に、次のようにトークンを取得しました: https://graph.facebook.com/oauth/access_token?client_id= &redirect_uri=&client_secret=&code= Access token Debugger を使用してトークンを検証しました。トークンは 60 日間有効です。ページ トークンを取得するには、次の URL を使用しました: graph.facebook.com/me/accounts?access_token= アプリ ページのトークンを取得しました。ツールでこのトークンを確認しました。有効期間は 60 日間のみです

ありがとう

4

1 に答える 1

3

また、アプリを作成せずにデータにアクセスしたいと考えていました。いろいろ試しましたが、最終的にはアプリ用に作成する必要がありました。そのため、アプリを作成する必要があります。

また、開発者の Web サイトを見ると、2012 年 12 月に「offline_access」権限が削除されたと書かれています。こちらを参照してください: https://developers.facebook.com/roadmap/offline-access-removal/ . そのため、彼らは長寿命のアクセス トークンを持ち込んだのです。彼らはまた、「まだ有効な長期間の access_token を更新したい場合は、最初に新しい短期間のユーザー access_token を取得してから、以下の同じエンドポイントを呼び出す必要があります」と述べています。

そのため、短期間のアクセス トークンを再度取得し、短期間のトークンを使用して長期間のトークンを取得する必要があります。長期アクセス トークンを取得するには、次のような HTTP 要求を送信できます。

var short_access_token; //Get this
var xhr = new XMLHttpRequest();
var f_url = "https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=CLIENT_ID&client_secret=APP_CLIENT_SECRET&fb_exchange_token="+short_access_token;

xhr.open("GET", f_url , true);
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        obj = xhr.responseText;
        long_token =  obj.split('=')[1].split('&')[0];
    }
}
xhr.send();

それが役に立てば幸い

于 2013-02-21T00:03:53.260 に答える