मैं एक एंड्रॉइड ऐप विकसित कर रहा हूं। फेसबुक की ऑफ़लाइन_कैस अनुमति के आने वाले बहिष्कार के साथ मैं फेसबुक टोकन का विस्तार करने के लिए ग्राफ़ एपीआई का उपयोग करने की कोशिश कर रहा हूं।एंड्रॉइड ऐप में रीफ्रेश किए गए फेसबुक टोकन प्राप्त करने के लिए कोड क्या है?
https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
किसी को भी विस्तृत कोड कैसे एक Android एप्लिकेशन में उपरोक्त कोड को लागू करने और प्राप्त ताजा फेसबुक टोकन के लिए यह दर्शाता है कि प्रदान कर सकते हैं?
अपने समय के लिए धन्यवाद।
अद्यतन दो:
प्रगति (मुझे लगता है कि)!
आधार URL में फेसबुक अनुरोध विधि परिणामों के साथ पूर्ण URL का उपयोग करना तो बजाय
यूआरएल की शुरुआत में जोड़ा जा रहाString refreshUrl = "https://graph.facebook.com/oauth/access_token?client_id=12345678910&client_secret=abcdefghijklmnopqrstuvwxyz&grant_type=fb_exchange_token&fb_exchange_token="+currentAccessToken;
String refreshUrl = "oauth/access_token?client_id=12345678910&client_secret=abcdefghijklmnopqrstuvwxyz&grant_type=fb_exchange_token&fb_exchange_token="+currentAccessToken;
का उपयोग करना चाहिए हालांकि मैं कर रहा हूँ अब प्रतिक्रिया प्राप्त हो रही है {"त्रुटि": {"message": "एप्लिकेशन को वैध करने में त्रुटि। अमान्य अनुप्रयोग आईडी।", "टाइप": "ओएथएक्सप्शन", "कोड": 1 9 0}}
अद्यतन एक:
यहां मैंने कोशिश की है। कोड पूरा हो जाता है, जो कि लिस्टरर पर ऑनकंपलेट कहा जाता है, लेकिन प्रतिक्रिया में एक नया एक्सेस टोकन या समाप्ति मान नहीं होता है।
void refreshWithGraph() {
AsyncFacebookRunner extendingAsyncRunner = new AsyncFacebookRunner(facebook);
Bundle parameters = new Bundle();
//the variable currentAccessToken is obtained after authorisation is complete using currentAccessToken = facebook.getAccessToken();
String refreshUrl = "https://graph.facebook.com/oauth/access_token?client_id=12345678910&client_secret=abcdefghijklmnopqrstuvwxyz&grant_type=fb_exchange_token&fb_exchange_token="+currentAccessToken;
extendingAsyncRunner.request(refreshUrl, parameters, new RefreshListener(), null);
}
यहाँ RefreshListener की मेरी संस्करण है ...
//REFRESH LISTENER
public class RefreshListener extends BaseRequestListener {
public void onComplete(final String response, Object state) {
try {
final JSONObject json = Util.parseJson(response);
runOnUiThread(new Runnable() {
@Override
public void run() {
tvRefreshResponse.setText("IN REFRESH LISTENER ONCOMPLETE\nResponse is " + response);
tvRefreshToken.setText("IN REFRESH LISTENER ONCOMPLETE\nToken is " + facebook.getAccessToken());
tvRefreshExpiry.setText("IN REFRESH LISTENER ONCOMPLETE\nFacebook expiry is " + millisecToDate(facebook.getAccessExpires()));
}
}); //end runOnUiThread
} catch (JSONException e) {
runOnUiThread(new Runnable() {
@Override
public void run() {
tvRefreshResponse.setText("IN REFRESH LISTENER ONCOMPLETE CAUGHT JSON EXCEPTION \nResponse is " + response);
}
}); //end runOnUiThread
} catch (FacebookError fe) {
runOnUiThread(new Runnable() {
@Override
public void run() {
tvRefreshResponse.setText("IN REFRESH LISTENER ONCOMPLETE CAUGHT FACEBOOK ERROR \nResponse is " + response);
}
}); //end runOnUiThread
} //end catch Facebook error
} //end onComplete
@Override
public void onIOException(IOException e, Object state) {
tvRefreshResponse.setText("IN REFRESH LISTENER IOEXCEPTION \nException is "+ e.getLocalizedMessage());
}
@Override
public void onFileNotFoundException(FileNotFoundException e, Object state) {
tvRefreshResponse.setText("IN REFRESH LISTENER FILE NOT FOUND EXCEPTION \nException is "+ e.getLocalizedMessage());
}
@Override
public void onMalformedURLException(MalformedURLException e, Object state) {
tvRefreshResponse.setText("IN REFRESH MALFORMED URL \nException is "+ e.getLocalizedMessage());
}
@Override
public void onFacebookError(FacebookError e, Object state) {
tvRefreshResponse.setText("IN REFRESH ONFACEBOOK ERROR \nException is "+ e.getLocalizedMessage());
}
} //end RefreshListener
कोड पूरा करता है, कि listerner पर OnComplete है कहा जाता है, लेकिन जवाब एक नई पहुँच टोकन या समाप्ति मूल्य शामिल नहीं है। प्रतिक्रिया ...
{"id":"https:\/\/graph.facebook.com\/oauth\/access_token","shares":78,"comments":1}
जब मैं उसी यूआरएल (एक अक्षरांकीय वर्तमान टोकन मूल्य के साथ) एक वेब ब्राउज़र प्रतिक्रिया करता है एक पहुँच टोकन शामिल में डाल दिया है।
संबंधित जानकारी
फेसबुक के offline_access अनुमति 1 मई को बहिष्कृत कर दिया जाएगा, 2012
कृपया onResume में extendAccessTokenIfNeeded समारोह उपयोग करने का सुझाव नहीं है() के बजाय।I am also having trouble उस के साथ है और यह कारण है कि मैं ग्राफ़ API टोकन ताज़ा :-)
संबंधित स्टैक ओवरफ़्लो सवालों
Is it possible to extend Facebook tokens with extendAccessTokenIfNeeded in an Android app? (मेरे सवाल)
How would offline_access work after deprecation after May 1st?
में देख रहा हूँFacebook access token can not be extended
Protecting app secret for extendAccessToken usage (Java/Android)
प्रासंगिक फेसबुक लिंक
Facebook offline_access permission deprecation
उपरोक्त सभी लिंक के साथ, आपको और अधिक विस्तृत जानकारी क्यों चाहिए? ऐसा लगता है कि आपके पास इसे लागू करने के लिए पर्याप्त दस्तावेज हैं .. – Shreeni
आपको लगता है कि मैं इसे काम कर सकता हूं, लेकिन नहीं। :-(स्टैक ओवरफ़्लो पर सभी आसान प्रश्नों को पूरी तरह उत्तर दिया जाता है, इसलिए मुझे लगता है कि यह उतना आसान नहीं है जितना पहले लगता है ... – Mel