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回调无法正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)