2013-09-25 4 views
6

मै मैसेज शेयरिंग के लिए अपने ऐप में फेसबुक एंड्रॉइड एसडीके v3.5 का उपयोग कर रहा हूं। आंकड़ों के लिए मुझे ट्रैक करना होगा कि संदेश सफलतापूर्वक पोस्ट किया गया था या नहीं। हालांकि मैं FacebookDialog.getNativeDialogCompletionGestureonActivityResult()एंड्रॉइड फेसबुक एसडीके शेयर संवाद: कभी भी पूर्ण इशारा नहीं लौटाएं

कोड जो मैं उपयोग करता हूं वह बहुत मानक है।

private void sendToFacebook() 
    { 
     if (!FacebookDialog.canPresentShareDialog(getActivity().getApplicationContext(),  FacebookDialog.ShareDialogFeature.SHARE_DIALOG)) 
     { 
     return; 
     } 

     FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(getActivity()) 
       .setName(getString(R.string.refer_friend_facebook_name)) 
       .setDescription(getString(R.string.refer_friend_facebook_description)) 
       .setCaption(getString(R.string.facebook_app_name)) 
       .setLink(getString(R.string.web_endpoint)) 
       .setPicture(getString(R.string.facebook_picture_90)) 
       .build(); 

     activity.getFacebookUiHelper().trackPendingDialogCall(shareDialog.present()); 

    } 

कोड मैं इस प्रक्रिया कॉल परिणाम के लिए उपयोग:

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
      facebookUiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback() 
      { 
       @Override 
       public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data) 
       { 
       // track on error             
       } 

       @Override 
       public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data) 
       { 
        if (FacebookDialog.getNativeDialogDidComplete(data)) 
        { 
         if (FacebookDialog.getNativeDialogCompletionGesture(data) == null 
           || FacebookDialog.COMPLETION_GESTURE_CANCEL.equals(FacebookDialog.getNativeDialogCompletionGesture(data))) 
         { 
          // track cancel             
         } 
         else 
         { 
          // track post 
         } 
        } 
        else 
        { 
         // track cancel    
        } 
       } 
      }); 
} 

फेसबुक SDK दस्तावेज़ में यह कहा गया है कि:

FacebookDialog

कोड फेसबुक शेयर संवाद कॉल करने के लिए। getNativeDialogCompletionGesture - केवल तभी उपलब्ध होगा जब उपयोगकर्ता फेसबुक का उपयोग करके आपके ऐप में लॉग इन हो और पूरा हो गया हो। मान या तो "पोस्ट" या "रद्द करें" है।

लेकिन मुझे समझ में नहीं आता कि इस वाक्यांश से उनका क्या अर्थ है।

उत्तर

3

इसका मतलब है कि आप केवल पूरा हो जाते हैं अगर उपयोगकर्ता को आपके ऐप को "auth" संपादित किया गया है (यानी उन्होंने आपके ऐप में फेसबुक बटन के माध्यम से लॉगिन के कुछ रूपों पर क्लिक किया है, और आपके ऐप को कम से कम बुनियादी अनुमतियां दी हैं)।

यदि वे नहीं हैं, तो आपको जो भी मिलता है वह प्राप्त होता है NativeDialogDidComplete, जो हमेशा सत्य देता है (चाहे उपयोगकर्ता "शेयर" या "रद्द करें" पर क्लिक करता है) जब तक कोई त्रुटि न हो।

+1

धन्यवाद! यह इस मुद्दे को बताता है। हालांकि यह फेसबुक पक्ष से काफी अजीब है। –

+0

फेसबुक क्यों ??? क्या हम डिफ़ॉल्ट फेसबुक ऐप के माध्यम से एकल साइन ऑन का उपयोग कर रहे हैं? हमें इसकी आवश्यकता क्यों है ?? – BQuadra

+1

मूल तर्क नीचे आता है, यदि उपयोगकर्ता ने आपके ऐप को एफबी के माध्यम से अधिकृत नहीं किया है, तो आपका ऐप यह नहीं जान सकता कि उपयोगकर्ता एफबी पर क्या कर रहा है। –

संबंधित मुद्दे