मैं फेसबुक (https://developers.facebook.com/docs/android/share) द्वारा फेसबुक एंड्रॉइड शेयरिंग ट्यूटोरियल का पालन कर रहा हूं। ऐप ठीक चलाता है और मैं डेमो शेयर बटन पर एक क्लिक के साथ फेसबुक के साथ लॉगिन कर सकता हूं। user_likes, user_friends, user_status, basic_info
फेसबुक एसडीके 3.8: अनुमति publ_actions वापस नहीं लौटा
- फेसबुक
- फेसबुक सत्र वस्तु अद्यतन हो जाता है और निम्न अनुमतियों सत्र वस्तु के भीतर सहेजे जाते हैं के साथ लॉग इन: तो यह मेरे ऐप की प्रक्रिया है। हालांकि यह सही होने के लिए वहाँ होना चाहिए लगता है,
public class MainActivity extends Activity { private Button shareButton; private UiLifecycleHelper uiHelper; private static final List<String> PERMISSIONS = Arrays.asList("publish_actions"); private static final String PENDING_PUBLISH_KEY = "pendingPublishReauthorization"; private boolean pendingPublishReauthorization = false; ... private void publishStory() { Session session = Session.getActiveSession(); if(session != null) { List<String> permissions = session.getPermissions(); if(!isSubsetOf(PERMISSIONS, permissions)) { pendingPublishReauthorization = true; Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(this, PERMISSIONS); //Request the new permission here. The answer is processed in onSessionStateChange() method session.requestNewPublishPermissions(newPermissionsRequest); return; } ... private void onSessionStateChange(Session session, SessionState state, Exception exception) { //since the session is already open we enter this if branch if (state.isOpened()) { shareButton.setVisibility(View.VISIBLE); //The result of state.equals(SessionState.OPENED_TOKEN_UPDATED) is false which indicates that the session object has not been updated (as far as I understand the fb api) Log.e(TAG, "state.equals(SessionState.OPENED_TOKEN_UPDATED) = " + state.equals(SessionState.OPENED_TOKEN_UPDATED)); //Output all the current permission the session has (publish_actions is not included here) List<String> permissions = session.getPermissions(); Iterator<String> it = permissions.iterator(); Log.e(TAG, "Content of list:"); while(it.hasNext()) Log.e(TAG, "permission = " + it.next()); //Since the OPENED_TOKEN_UPDATED has not been updated nothing further happens here if (pendingPublishReauthorization && state.equals(SessionState.OPENED_TOKEN_UPDATED)) { pendingPublishReauthorization = false; publishStory(); } } else if (state.isClosed()) { shareButton.setVisibility(View.INVISIBLE); } }
तो: इसलिए उपयोगकर्ता एक साझा करें बटन पर क्लिक करता है और एक अतिरिक्त अनुमति के लिए एक अनुरोध बुलाया
publish_actions
निम्नलिखित कोड किया जाता है इस अनुरोध करता है कुछ शेष त्रुटि। Publ_actions अनुमति अनुमति नहीं दी गई है हालांकि मुझे समझ में नहीं आता क्यों। केवल मौजूदा अनुमतियां publish_actions
रहती हैं।
आगे की टिप्पणी: मैंने कुछ प्रश्न पढ़े हैं जो कहते हैं कि उपयोगकर्ता को अनुमति देने के लिए एक अतिरिक्त पॉपअप दिखाना चाहिए। हालांकि यह मेरे मामले में नहीं होता है। शायद यह समस्या है? यदि हां, तो पॉपअप विंडो प्राप्त करने के लिए मुझे क्या करना है?
अद्यतन: मैंने अतिरिक्त रूप से गिटूब से निम्नलिखित ग्रिस्ट की कोशिश की: https://gist.github.com/vishalpawale/5556996 यह नमूना कोड उसी कारण से विफल रहता है। इसे कोई प्रकाशन_एक्शन अनुमति नहीं मिलती है। फेसबुक एसडीके में एक वास्तविक बग लगता है?
मुझे यकीन नहीं है, लेकिन अब मैं इस समस्या को हल करने की कोशिश कर रहा हूं। स्पष्ट रूप से फेसबुक ने एपीआई के माध्यम से पोस्ट प्रकाशित करने की क्षमता वापस ले ली। क्या आपको कोई समाधान मिला? – Wordica
मैंने डेवलपर्स का पालन किया .facebook.com/docs/android/share उदाहरण उपयोगकर्ता की दीवार पर पोस्ट करने के लिए। यदि मैं ऐप डेवलपर ईमेल का उपयोग कर फेसबुक पर लॉगिन करता हूं तो यह ठीक काम करता है। गैर डेवलपर्स के साथ, मुझे अनुमति नहीं मिलती है ... क्या आपके लिए भी ऐसा ही होता है? –
एक ही समस्या, publ_action अनुमति नहीं दी गई। –