too*_*oom 9 permissions android facebook facebook-graph-api facebook-android-sdk
我正在关注facebook(https://developers.facebook.com/docs/android/share)的facebook android共享教程.该应用程序运行正常,我可以登录Facebook点击演示共享按钮.所以这是我的应用程序:
user_likes, user_friends, user_status, basic_infopublish_actions由以下代码执行此请求:
public class MainActivity extends Activity {
private Button shareButton;
private UiLifecycleHelper uiHelper;
private static final List<String> PERMISSIONS = Arrays.asList("publish_actions");
private static final String PENDING_PUBLISH_KEY = "pendingPublishReauthorization";
private boolean pendingPublishReauthorization = false;
...
private void publishStory() {
Session session = Session.getActiveSession();
if( session != null) {
List<String> permissions = session.getPermissions();
if(!isSubsetOf(PERMISSIONS, permissions)) {
pendingPublishReauthorization = true;
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, PERMISSIONS);
//Request the new permission here. The answer is processed in onSessionStateChange() method
session.requestNewPublishPermissions(newPermissionsRequest);
return;
}
...
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
//since the session is already open we enter this if branch
if (state.isOpened()) {
shareButton.setVisibility(View.VISIBLE);
//The result of state.equals(SessionState.OPENED_TOKEN_UPDATED) is false which indicates that the session object has not been updated (as far as I understand the fb api)
Log.e(TAG, "state.equals(SessionState.OPENED_TOKEN_UPDATED) = " + state.equals(SessionState.OPENED_TOKEN_UPDATED));
//Output all the current permission the session has (publish_actions is not included here)
List<String> permissions = session.getPermissions();
Iterator<String> it = permissions.iterator();
Log.e(TAG, "Content of list:");
while(it.hasNext())
Log.e(TAG, "permission = " + it.next());
//Since the OPENED_TOKEN_UPDATED has not been updated nothing further happens here
if (pendingPublishReauthorization && state.equals(SessionState.OPENED_TOKEN_UPDATED)) {
pendingPublishReauthorization = false;
publishStory();
}
} else if (state.isClosed()) {
shareButton.setVisibility(View.INVISIBLE);
}
}
Run Code Online (Sandbox Code Playgroud)
所以,虽然这似乎是正确的,但必定存在一些错误.未授予publish_actions权限,但我不明白为什么.仅保留现有权限publish_actions.
进一步说明:我已经阅读了一些问题,说明应该出现一个额外的弹出窗口,要求用户授予权限.然而,在我的情况下,这不会发生.也许这就是问题?如果是这样,我需要做什么才能获得弹出窗口?
更新:我还从github尝试了以下要点:https://gist.github.com/vishalpawale/5556996 此示例代码由于完全相同的原因而失败.它没有获得任何publish_action权限.似乎是Facebook SDK中的实际错误?
| 归档时间: |
|
| 查看次数: |
5014 次 |
| 最近记录: |