2015-05-04 10 views
9

मैं फेसबुक पर लिंक साझा करने के लिए निम्नलिखित कोड का उपयोग कर रहा हूं। जब उपयोगकर्ता साझा संवाद इंटरफ़ेस पर रद्द करने पर क्लिक करता है, तो Success() कॉलबैक विधि को कभी-कभी कैनसेल() के बजाय बुलाया जाता है। और पोस्ट आईडी शून्य प्राप्त करें। कृपया मेरी मदद करें क्या गलत हो रहा है?एंड्रॉइड फेसबुक एसडीके 4.0.0 कॉलबैक साझा करना ठीक से काम नहीं करता

ShareButton btn; 
CallbackManager callbackManager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    FacebookSdk.sdkInitialize(this); 
    callbackManager = CallbackManager.Factory.create(); 
    setContentView(R.layout.activity_share); 

    btn = (ShareButton) findViewById(R.id.btn_share); 

    btn.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { 
     @Override 
     public void onSuccess(Sharer.Result result) { 
      Log.e("Tag","Successfully posted"); 
      Log.e("Post id",result.getPostId()); 
     } 

     @Override 
     public void onCancel() { 

      Log.e("Tag","Canceled by user"); 

     } 

     @Override 
     public void onError(FacebookException error) { 

      Log.e("Tag",error.getLocalizedMessage()); 
     } 
    }); 
    ShareLinkContent content = new ShareLinkContent.Builder() 
      .setContentUrl(Uri.parse("My Custom URL")) 
      .setContentTitle("Test") 
      .build(); 

    btn.setShareContent(content); 

} 

@Override 
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 
+0

मुझे एक ही समस्या है। क्या आप इसे हल करने में सक्षम हैं? – cjserio

+0

मुझे भी एक ही समस्या का सामना करना पड़ रहा है। – Shankar

+0

मुझे भी वही समस्या है और कहीं भी समाधान नहीं मिल रहा है। ऐसा लगता है कि एंड्रॉइड के लिए फेसबुक एसडीके में एक बग या दस्तावेज में कुछ गुम है। –

उत्तर

3

ठीक है, शायद मुझे देर हो चुकी है लेकिन मुझे सप्ताह पहले एक ही समस्या का सामना करना पड़ा। मैंने जो देखा है वह है यदि आप वेब-बेस शेयर संवाद में रद्द करें दबाते हैं, तो ऑनस्यूप() विधि को कॉल किया जाता है लेकिन Share.Result ऑब्जेक्ट में एक शून्य पोस्ट आईडी है, इसलिए जब भी उपयोगकर्ता ने दबाकर दबाया या साझा किया है तो आप नियंत्रित कर सकते हैं शेयर। परिणाम प्रतिक्रिया।

मैंने देखा है कि एक और चीज यह है कि यदि आप मूल ऐप इंस्टॉल के साथ सामग्री साझा करते हैं, तो पोस्ट आईडी फ़ील्ड हमेशा शून्य है ... इसलिए आपको यह जांचना होगा कि उपयोगकर्ता को पोस्ट आईडी फ़ील्ड को जांचने के लिए इंस्टॉल किया गया है या नहीं।

+0

मैंने सफलता पोस्ट एक्शन की पहचान करने के लिए 'पोस्टआईडी' का उपयोग करने की कोशिश की लेकिन जैसा कि आपने कहा था कि मूल ऐप इंस्टॉल होने पर' पोस्टआईडी 'हमेशा शून्य होता है। क्या आपके पास इस परिदृश्य में रद्द करने का कोई समाधान है? – agarwaen

+0

बस जांचें कि उपयोगकर्ता के पास एक या अन्य तर्क करने के लिए फेसबुक पैकेज स्थापित है या नहीं। – ablanco

+0

यह समाधान विफल रहता है जब उपयोगकर्ता फेसबुक मूल ऐप स्थापित करता है और संवाद के ऊपरी बाएं किनारे पर बैक एरो बटन पर क्लिक करके साझाकरण रद्द कर देता है, इस मामले में सफलता को फिर से कॉल किया जाता है, पोस्ट के साथ शून्य है। – NecipAllef

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