2016-10-05 3 views
2

Facebook 공유 대화 상자를 통해 이미지를 공유하려고합니다. 코드는 다음과 같습니다.Android. Android 6.0 이상에서 Facebook 공유 대화 상자가 즉시 닫습니다.

private void startFacebookShare() { 
     SharePhoto photo = new SharePhoto.Builder() 
       .setBitmap(getCapturedImage()) 
       .build(); 
     SharePhotoContent content = new SharePhotoContent.Builder() 
       .addPhoto(photo) 
       .build(); 

     ShareDialog shareDialog = new ShareDialog(this); 
     shareDialog.registerCallback(fbManager, new FacebookCallback<Sharer.Result>() { 
      @Override 
      public void onSuccess(Sharer.Result result) { 
       Toast.makeText(MainActivity.this, "SUCCESS", Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onCancel() { 
       Toast.makeText(MainActivity.this, "ONCANCEL"), Toast.LENGTH_SHORT).show(); 
      } 

      @Override 
      public void onError(FacebookException e) { 
       Toast.makeText(MainActivity.this, "ERROR", Toast.LENGTH_SHORT).show(); 
      } 
     }); 

     if(isFacebookInstalled()){ 
      shareDialog.show(content, ShareDialog.Mode.NATIVE); 
     }else{ 
      shareDialog.show(content, ShareDialog.Mode.WEB); 
     } 
    } 

하지만 문제가 있습니다. 그것은 다음과 같은 경우에만 작동합니다 : API가 6.0에 포함되지 않는 경우 및 Facebook 앱이 장치에 설치된 경우. 다른 경우에는 콜백에서 erro가 열리고 즉시 닫힙니다.

문제를 해결하는 방법은 무엇입니까?

감사)

ADD1 (로그 캣) :

10-05 08:42:43.790 2220-2220/com.industi.polmak_app W/System.err: {FacebookGraphResponseException: An active access token must be used to query information about the current user. httpResponseCode: 400, facebookErrorCode: 2500, facebookErrorType: OAuthException, message: An active access token must be used to query information about the current user.} 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at com.facebook.internal.NativeProtocol.getExceptionFromErrorData(NativeProtocol.java:788) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at com.facebook.share.internal.ShareInternalUtility.handleActivityResult(ShareInternalUtility.java:166) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at com.facebook.share.internal.ShareInternalUtility$3.onActivityResult(ShareInternalUtility.java:258) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at com.facebook.internal.CallbackManagerImpl.onActivityResult(CallbackManagerImpl.java:82) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at com.industi.polmak_app.activities.MainActivity.onActivityResult(MainActivity.java:125) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at android.app.Activity.dispatchActivityResult(Activity.java:5423) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at android.app.ActivityThread.deliverResults(ActivityThread.java:3361) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at android.app.ActivityThread.handleSendResult(ActivityThread.java:3408) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at android.app.ActivityThread.access$1300(ActivityThread.java:135) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:102) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at android.os.Looper.loop(Looper.java:136) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5017) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at java.lang.reflect.Method.invokeNative(Native Method) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at java.lang.reflect.Method.invoke(Method.java:515) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
10-05 08:42:43.850 2220-2220/com.industi.polmak_app W/System.err:  at dalvik.system.NativeStart.main(Native Method) 
+0

포스트 당신의 로그 캣가. – Sufian

+0

@Sufian Facebook 앱 또는 API 6.0 이상이없는 경우 - FacebookCallback에서 onError 메소드와 R.string.facebook_must_be_installed가 호출됩니다. 다른 상황에서는 모든 것이 잘 작동하고 내 그림과 함께 기본 Facebook 공유 대화 상자가 열립니다 –

+0

@Sufian Facebook 앱 또는 API 6.0+ 공유 대화 상자가 잠시 열리면 즉시 onError가 닫히고 호출됩니다 –

답변

2

관리자 또는 개발자 계정이 아닌 페이스 북 계정에서 페이스 북 SDK를 사용하려는 경우 위 일어날 수있다 당신이 작업하고있는 프로젝트. 페이스 북 개발자 페이지로 이동하여 SDK에 액세스하려는 페이스 북 계정을 추가해야합니다.

위 나던 작품은 당신이 시도 할 수있는 경우, 문제의 동일한 종류의 승인을받은 한 가지 대답도있다 :

Facebook android shareDialog closes after opening

관련 문제