2014-09-11 81 views
0

我在使用網頁對話框時遇到了facebook共享中的一些問題,Facebook提示錯誤消息」發生錯誤,請稍後再試。「 onCompleteListener是越來越單擊OK(確定)錯誤消息對話框後調用。我無法找到的錯誤代碼。在Android上使用Web對話框在Facebook共享上發生錯誤「發生錯誤,請稍後再試

相同的應用程序是爲Facebook原生對話框正常工作。

我自己也嘗試相同的代碼不同Facebook的應用程序ID,它工作的很好,所以它沒有看到任何代碼相關的問題,但與Facebook上的應用程序設置有關

在我的應用程序ID中,我設置了應用程序域,網站網址和移動網站網址。如果我們正在設置應用程序域,網站網址和移動網站網址,我們是否也需要發送其他一些參數?

請提出一些解決方案。

Bundle params = new Bundle(); 
    params.putString("name", mShareText); 
    params.putString("caption","Build"); 
    params.putString("description", mContext.getString(R.string.social_preconfigured_text));  
    params.putString("link", mShareUrl); 

    if(mShareImageUrl!=null){ 
     params.putString("picture", mShareImageUrl); 
    } 
    else{ 
     params.putString("picture", " "); 
    } 

    // Invoke the dialog 
    WebDialog feedDialog = (
      new WebDialog.FeedDialogBuilder(this, 
        Session.getActiveSession(), 
        params)) 
        .setOnCompleteListener(new OnCompleteListener() { 
         @Override 
         public void onComplete(Bundle values, FacebookException error) { 
          if (error == null) { 
           Toast.makeText(mContext, mContext.getString(R.string.social_success_text), Toast.LENGTH_SHORT).show(); 
          } 
          else{ 
           Toast.makeText(mContext, mContext.getString(R.string.social_failure_text), Toast.LENGTH_SHORT).show(); 
          } 
         } 
        }).build(); 
    feedDialog.show(); 

感謝, 馬尼什

+0

你可以嘗試修改你的問題的標題,並給予一定的代碼? – Raptor 2014-09-11 07:41:09

回答

1

難治說沒有錯誤或代碼,但我使用Facebook對話,如:

@Override 
    public void requestPostDialog(Bundle bundle, OnPostingCompleteListener onPostingCompleteListener) { 
     super.requestPostDialog(bundle, onPostingCompleteListener); 
     if (FacebookDialog.canPresentShareDialog(mSocialNetworkManager.getActivity(), 
       FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) { 
      FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(mSocialNetworkManager.getActivity()) 
        .setLink(bundle.getString(BUNDLE_LINK)) 
        .setDescription(bundle.getString(BUNDLE_MESSAGE)) 
        .setName(bundle.getString(BUNDLE_NAME)) 
        .setApplicationName(bundle.getString(BUNDLE_APP_NAME)) 
        .setCaption(bundle.getString(BUNDLE_CAPTION)) 
        .setPicture(bundle.getString(BUNDLE_PICTURE)) 
//     .setFriends(bundle.getStringArrayList(DIALOG_FRIENDS)) 
        .build(); 
      mUILifecycleHelper.trackPendingDialogCall(shareDialog.present()); 
     } else { 
      publishFeedDialog(bundle); 
     } 
    } 

    private void publishFeedDialog(Bundle bundle) { 
     Bundle params = new Bundle(); 
     params.putString("name", bundle.getString(BUNDLE_NAME)); 
     params.putString("caption", bundle.getString(BUNDLE_CAPTION)); 
     params.putString("description", bundle.getString(BUNDLE_MESSAGE)); 
     params.putString("link", bundle.getString(BUNDLE_LINK)); 
     params.putString("picture", bundle.getString(BUNDLE_PICTURE)); 

     WebDialog feedDialog = (
       new WebDialog.FeedDialogBuilder(mSocialNetworkManager.getActivity(), 
         Session.getActiveSession(), 
         params)) 
       .setOnCompleteListener(new WebDialog.OnCompleteListener() { 
        @Override 
        public void onComplete(Bundle values, 
              FacebookException error) { 
         if (error == null) { 
          final String postId = values.getString("post_id"); 
          if (postId != null) { 
           ((OnPostingCompleteListener) mLocalListeners.get(REQUEST_POST_DIALOG)).onPostSuccessfully(getID()); 
          } else { 
           mLocalListeners.get(REQUEST_POST_DIALOG).onError(getID(), 
             REQUEST_POST_DIALOG, "Canceled", null); 
          } 
         } else { 
          mLocalListeners.get(REQUEST_POST_DIALOG).onError(getID(), 
            REQUEST_POST_DIALOG, "Canceled: " + error.toString(), null); 
         } 
         mLocalListeners.remove(REQUEST_POST_DIALOG); 
        } 
       }) 
       .build(); 
     feedDialog.show(); 
    } 
+0

@Ekondard,我添加了我的代碼片段。請建議如何檢查錯誤代碼。在onComplete中,我沒有收到任何錯誤代碼。只有在錯誤對話框中單擊確定後纔會調用它。 – Manish 2014-09-11 08:34:57

+0

最後我得到了解決方案。在Facebook應用程序設置 - >遷移選項卡中,有人設置了流發佈URL安全切換。正因爲如此,我正面臨着這個問題。 – Manish 2014-09-15 04:45:03

+0

你是說WebDialog取決於FB APK嗎?從https://developers.facebook.com/docs/android/share#linkfeed「如果用戶沒有安裝Facebook for Android應用程序,則無法顯示共享對話框。在這種情況下,我們建議您回到Feed對話框,一個不需要安裝Facebook應用程序的網頁對話框。「 – John 2014-09-17 13:23:26

相關問題