android–Facebook loginwithpublishpermissions回调无法正常工作

android–Facebook loginwithpublishpermissions回调无法正常工作,第1张

概述publicclassNextActivityextendsAppCompatActivity{CallbackManagercallbackManager;LoginManagermanager;ImageViewimage;@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInsta

public class NextActivity extends AppCompatActivity {    CallbackManager callbackManager;    LoginManager manager;    ImageVIEw image;    @OverrIDe    protected voID onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_next);        button sharebutton = (button)findVIEwByID(R.ID.sharebtn);        image = (ImageVIEw) findVIEwByID(R.ID.image);        FacebookSdk.sdkInitialize(getApplicationContext());                sharebutton.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw vIEw) {                checkpermission();            }});    }    public voID checkpermission(){        final Bundle permBundle = new Bundle();        permBundle.putCharSequence("permission", "publish_actions");        GraphRequest request = new GraphRequest(                Accesstoken.getCurrentAccesstoken(),                "/me/permissions", permBundle, httpMethod.GET,                new GraphRequest.Callback() {                    @OverrIDe                    public voID onCompleted(GraphResponse graphResponse) {                        System.out.println("sammy_permission_graph_request "+graphResponse.getJsONObject());                        try {                            JsONArray permList = (JsONArray) graphResponse.getJsONObject().get("data");                            if(permList.length() == 0){                                // no data for perms, hence asking permission                                getPublishPermission();                            }else{                                JsONObject permData = (JsONObject) permList.get(0);                                String permVal = (String) permData.get("status");                                if(permVal.equals("granted")){                                    sharePhotoToFacebook();                                }else{                                    getPublishPermission();                                }                            }                        } catch (JsONException e) {                            System.out.println("sammy_exception while parsing fb check perm data "+e.toString());                        }                    }                }        );        request.executeAsync();    }    public voID getPublishPermission(){        callbackManager = CallbackManager.Factory.create();        manager = LoginManager.getInstance();        manager.logInWithPublishPermissions(                NextActivity.this,                Arrays.asList("publish_actions"));        manager.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {            @OverrIDe            public voID onSuccess(LoginResult loginResult) {                System.out.println("sammy_got_publish_permission");                sharePhotoToFacebook();            }            @OverrIDe            public voID onCancel() {                System.out.println("sammy_cancelled while asking publish permission");            }            @OverrIDe            public voID one rror(FacebookException error) {                System.out.println("sammy_error occurred while asking publish permission!");            }        });    }    private voID sharePhotoToFacebook(){        System.out.println("sammy_sharing_started");        try{            Bitmap bm = ((BitmapDrawable)image.getDrawable()).getBitmap();            SharePhoto photo = new SharePhoto.Builder()                    .setBitmap(bm)                    .setCaption("BMW Vision")                    .setUserGenerated(true)                    .build();            SharePhotoContent content = new SharePhotoContent.Builder()                    .addPhoto(photo)                    .build();                        ShareAPI.share(content, new FacebookCallback<Sharer.Result>() {                @OverrIDe                public voID onSuccess(Sharer.Result result)                {                    System.out.println("sammy_publish_result "+result);                    Toast.makeText(NextActivity.this, "Success in Posting", Toast.LENGTH_SHORT).show();                }                @OverrIDe                public voID onCancel()                {                    System.out.println("sammy_shareAPI_canceled");                }                @OverrIDe                public voID one rror(FacebookException e)                {                    System.out.println("sammy_shareAPI_exception "+e);                }            });                    }catch (Exception e){            System.out.println("sammy_exception "+e.toString());        }    }    @OverrIDe    protected voID onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        callbackManager.onActivityResult(requestCode, resultCode, data);    }}

我正在尝试在后台分享图像和文字到Facebook.首先,我正在检查是否已授予发布权限.如果不是,我正在使用logInWithPublishPermissions获取发布权限.但由于某种原因,registerCallback的响应总是在onCancel()中.我需要添加到logInWithPublishPermissions吗?

解决方法:

您必须在Facebook开发人员的网站https://developers.facebook.com/上授予publish_actions权限

请按照link设置您的应用以访问publish_actions权限并提交您的应用以供审核.

总结

以上是内存溢出为你收集整理的android – Facebook loginwithpublishpermissions回调无法正常工作全部内容,希望文章能够帮你解决android – Facebook loginwithpublishpermissions回调无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存