Android uygulaması geliştiriyorum. Facebook'un offline_access izninin yaklaşan kullanımdan kaldırılmasıyla Facebook simgesini kullanmaya devam etmek için Graph API'yi kullanmaya çalışıyorum.Bir Android uygulamasında yenilenen bir Facebook belirteci almak için kod nedir?
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
herkes nasıl bir android app içine yukarıdaki kod uygulamak ve tazelenmiş Facebook belirteç elde etmek gösteren ayrıntılı bir kod sağlayabilir mi?
Zaman ayırdığınız için teşekkür ederiz.
Güncelleme İki:
İlerleme (Bence)! temel URL'de facebook istek yöntemi sonuçları ile tam URL'yi kullanarak
String refreshUrl = "https://graph.facebook.com/oauth/access_token?client_id=12345678910&client_secret=abcdefghijklmnopqrstuvwxyz&grant_type=fb_exchange_token&fb_exchange_token="+currentAccessToken;
Ancak ben
String refreshUrl = "oauth/access_token?client_id=12345678910&client_secret=abcdefghijklmnopqrstuvwxyz&grant_type=fb_exchange_token&fb_exchange_token="+currentAccessToken;
kullanmalıdır URL'ye başında Yani yerine
eklenen şimdi yanıtı alıyoruz {"error": {"message": "Uygulama doğrulanırken hata oluştu. Geçersiz uygulama kimliği.", "type": "OAuthException", "code": 190}}
Güncelleştirme One:
Denediğim şey burada. Kod tamamlanır, yani listerner üzerinde OnComplete çağrılır, ANCAK yanıt yeni bir erişim belirteci veya son kullanma değeri içermez.
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);
}
İşte o denir listerner üzerinde onComplete olduğunu
//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
kod tamamlar ... RefreshListener benim sürümüdür ANCAK yanıtı yeni bir erişim belirteci veya son kullanma değer içermiyor. Ben tepki bir erişim kodu şu YAPAR bir web tarayıcısına (bir alfanümerik akım belirteç değeri ile) aynı URL koyduğunuzda yanıtı ...
{"id":"https:\/\/graph.facebook.com\/oauth\/access_token","shares":78,"comments":1}
olduğunu.
İlgili Bilgiler
Facebook'un offline_access izni 2012
onResume içinde extendAccessTokenIfNeeded işlevini kullanarak önermek etmeyiniz() yerine, 1 Mayıs günü kaldırılacaktır.Bununla I am also having trouble ve ben
İlgili yığın taşması
Is it possible to extend Facebook tokens with extendAccessTokenIfNeeded in an Android app? (benim sorum)
How would offline_access work after deprecation after May 1st?
Soruları Graph API jetonu ferahlatıcı :-) inceliyorum nedeni budurFacebook access token can not be extended
Protecting app secret for extendAccessToken usage (Java/Android)
İlgili Facebook Dürüst olmak gerekirse
Facebook offline_access permission deprecation
Yukarıdaki tüm bağlantılarla, neden daha ayrıntılı bilgiye ihtiyacınız var? Bunu uygulamak için yeterli belgeleriniz var gibi görünüyor .. – Shreeni
Bunu yapabileceğimi düşünürdüm, ama hayır. :-(Yığın Taşması ile ilgili tüm kolay soru çok hızlı bir şekilde tam olarak cevaplandırılır bu yüzden sanki ilk bakışta bu kadar kolay değil sanırım ... – Mel