Facebook SDK 3.8:未返回权限publish_actions [英] Facebook SDK 3.8 : permission publish_actions not returned

查看:219
本文介绍了Facebook SDK 3.8:未返回权限publish_actions的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在通过Facebook跟随Facebook的android共享教程( https://developers.facebook。 COM /文档/安卓/股)。该应用程序运行正常,我可以用Facebook登录,点击演示共享按钮。所以这是我的应用程序的过程:

I'm following the facebook android sharing tutorial by facebook (https://developers.facebook.com/docs/android/share). The app runs fine and I can login with facebook an click on the demo share button. So this is the procedure of my app:


  1. 使用Facebook登录

  2. facebook会话对象获取更新并在会话对象中保存以下权限: user_likes,user_friends,user_status,basic_info

  3. 现在,我想分享一些东西。因此,用户点击一个共享按钮,并发出一个名为 publish_actions 的附加权限请求

  1. Login with facebook
  2. The facebook session object gets updated and the following permissions are saved within the session object: user_likes, user_friends, user_status, basic_info
  3. Now, I want to share something. Therefore the user clicks on a share button and a request for an additional permission called publish_actions is made

以下代码执行此请求:

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);
        }
    }

所以,虽然这似乎是正确的,一些剩下的错误。没有发布publish_actions权限,但我不明白为什么。只有现有的权限仍然保留 publish_actions

So, although this seems to be correct there must be some remaining error. The publish_actions permission is not granted however I do not understand why. Only the existing permissions remain publish_actions.

进一步的说明:我已经看到一些问题,说一个额外的弹出应该出现要求用户授予权限。但是,我的情况并不会发生。也许这是问题吗?如果是这样,我需要做什么来获取弹出窗口?

Further remark: I've read some questions that say that an additional popup should appear asking the user to grant the permission. However this does not happen in my case. Maybe this is the problem? If so, what do I have to do to get the popup window?

更新:我还从github尝试以下要点: https://gist.github.com/vishalpawale/5556996
由于完全相同的原因,此示例代码失败。它没有获得任何publish_action权限。似乎是Facebook SDK中的实际错误?

UPDATE: I also additionally tried the following gist from github: https://gist.github.com/vishalpawale/5556996 This sample code fails due to the exact same reason. It does not get any publish_action permission. Seems to be a actual bug in the Facebook SDK?

推荐答案

对于发布权限,您应该在应用设置中发送请求并发送审核,请参阅 https://developers.facebook.com/docs/apps/review/

For publish permission you should send request in app settings and send for review, see https://developers.facebook.com/docs/apps/review/

这篇关于Facebook SDK 3.8:未返回权限publish_actions的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆