1

We have a product that allows people to schedule posts to Facebook. We have relied upon the offline access permission, which is scheduled to be removed on Dec 5th.

We think that we have implemented the correct 60 day session-extending logic, but are having difficulty testing.

We created a new test Facebook app and enabled the "December 2012 Breaking Changes" migration setting. A new user authorizes the new application (and we still request the offline_access permission). We then extend the session, which returns the same session token without an expires parameter. When we use the Access Token Debugger, it says that the tokens never expire.

We tried doing the authorization without passing the offline_access permission, but could never get an expiration beyond 5760 (4 hours), making it seem necessary to still pass.

We very much want to test the breaking change, but we cannot create the scenario in which sessions expire and must be continually extended. How can we test this?

4

2 に答える 2

1

解決策は、2番目の移行設定「offline_access権限の削除」も有効にする必要があることです。「2012年12月の重大な変更」移行設定で有効にした場合にのみ、アプリケーションは60日間のセッショントークンを取得できます。

これには、既存の期限切れのないセッショントークンをすぐに60日の期限切れのトークンに変換するという不幸な副作用があります。Facebookは、既存の有効期限のないトークンを引き続き尊重すると述べましたが、両方の設定を有効にする必要があるため、アプリケーションはすべてのユーザーを60日間のトークンを持つものとして扱うことを余儀なくされます。

于 2012-12-04T20:27:40.107 に答える
1

はい、私はこれを以前にテストしました。以下は、デバッガーとブラウザーを使用して 60 日間のトークンをテストする手順です。これらの呼び出しをアプリに合わせて調整し、サーバー側のログを使用してトークンをコピーしてデバッガーに貼り付け、トークンの有効期限を確認できます。

まず、もう求めないでくださいoffline_access

Graph API Explorerを使用して、アクセス トークンを取得します。アプリに設定Application:します。以下では、私のアプリは ES1 と呼ばれます。

ここに画像の説明を入力

(自分が管理者または開発者であるアプリのみが [アプリケーション] リストに表示されます)

[デバッグ] ボタンをクリックして、有効期間が短いトークンがあることを確認します。

ここに画像の説明を入力

注:offline_access前のスクリーンショットではパーマはありません。

この呼び出しを実行して、存続期間の短いトークンを存続期間の長いトークンに交換します。これをブラウザに貼り付けるだけです。これをアプリのコードに含めます。

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=APPID&client_secret=APPSECRET&fb_exchange_token=SHORT_LIVED_TOKEN

トークン交換の結果:

ここに画像の説明を入力

この新しいトークンをデバッガーに貼り付けて、60 日で有効期限が切れることを確認できます。

ここに画像の説明を入力

したがって、上記の手順をアプリに変換し、トークンをログに記録し、それらのトークンをデバッガーでチェックするだけです。

于 2012-12-04T04:08:51.673 に答える