Fil*_*ipR 4 facebook facebook-graph-api facebook-authentication facebook-access-token facebook-sdk-4.0
他们在AccessToken文档中说:"使用Facebook SDK的原生移动应用程序将获得长期访问令牌,大约可以使用60天.当使用您的应用程序的人向Facebook提出请求时,这些令牌将每天更新一次.服务器".
这是否意味着只有当Facebook服务器的请求来自客户端Android应用程序时(我不确定如何解释"......使用您的应用程序的人..."),那么访问令牌将被刷新?
在我的应用程序中,我使用检索访问令牌AccessToken.getCurrentAccessToken(),将访问令牌发送到我的服务器,服务器向Facebook的服务器发出请求,目的是验证收到的访问令牌.
在这种情况下,是否还会刷新访问令牌?(在这种情况下,服务器正在向FB的服务器发出请求,而不是直接"使用我的应用程序的人")
AccessToken.getCurrentAccessToken()Android客户端是否返回刷新的访问令牌?谢谢
编辑:这可以帮助其他人节省时间:我发现访问令牌在初始化FacebookSDK时会在某些条件下自动刷新(Facebook文档没有清楚地解释访问令牌是如何刷新的 - 请参阅上面的问题).
请注意我使用的是FacebookSDK 4.0 for Android.
按照下面的步骤操作:
FacebookSDK.sdkInitialize(Context, InitializeCallback)
if (AccessToken.getCurrentAccessToken() != null && Profile.getCurrentProfile() == null)
Profile.fetchProfileForCurrentAccessToken()
Utility.getGraphMeRequestWithCacheAsync()
GraphRequest graphRequest = getGraphMeRequestWithCache(accessToken);
graphRequest.setCallback(graphCallback);
graphRequest.executeAsync();
executeBatchAsync(GraphRequestBatch requests)GraphRequestAsyncTask asyncTask = new GraphRequestAsyncTask(requests);
asyncTask.executeOnSettingsExecutor();GraphRequestAsyncTask doInBackground()方法 if (connection == null) {
return requests.executeAndWait();
} else {
return GraphRequest.executeConnectionAndWait(connection, requests);
}
对于这两种情况,代码将以此方法结束:
public static List<GraphResponse> executeConnectionAndWait(
HttpURLConnection connection,
GraphRequestBatch requests)
Run Code Online (Sandbox Code Playgroud)
AccessTokenManager.getInstance().extendAccessTokenIfNeeded();线.顾名思义,每天最多扩展一次访问令牌.| 归档时间: |
|
| 查看次数: |
4573 次 |
| 最近记录: |