मुझे अपने एंड्रॉइड एप्लिकेशन के माध्यम से ग्राफ एपीआई तक पहुंचने में समस्या है जो उपयोगकर्ता के दोस्तों को JSONObject के रूप में पुनर्प्राप्त करता है, उनके नाम निकालता है और उन्हें स्क्रीन पर प्रदर्शित करता है। यह एक सरल और सीधा काम माना जाता है लेकिन स्पष्ट रूप से यह नहीं है। जब मैं एंड्रॉइड नेक्सस I पर अपना एप्लिकेशन चलाता हूं, तो मैं फेसबुक पर लॉगिन करता हूं, फिर मुझसे पूछा जाता है कि मैं अनुमति देने के लिए "अनुमति दें" बटन पर क्लिक करता हूं और मुझे रिक्त पृष्ठ पर रीडायरेक्ट किया जाता है। मुझे अपने दोस्तों का नाम देखने की उम्मीद है लेकिन ऐसा नहीं होता है। क्या कोई मेरी सहायता कर सकता है।एंड्रॉइड एप्लिकेशन के माध्यम से फेसबुक दोस्तों तक नहीं पहुंच सकता
public class Login extends Activity
{
Facebook mFacebook = new Facebook("201509899926116");
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(mFacebook);
String FILENAME = "AndroidSSO_data";
private SharedPreferences mPrefs;
View linearLayout;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
linearLayout = findViewById(R.id.main_layout);
/* Get existing access_token if any */
mPrefs = getPreferences(MODE_PRIVATE);
String access_token = mPrefs.getString("access_token", null);
long expires = mPrefs.getLong("access_expires", 0);
if(access_token != null)
{
mFacebook.setAccessToken(access_token);
}
if(expires != 0)
{
mFacebook.setAccessExpires(expires);
}
/* Only call authorize if the access_token has expired. */
if(!mFacebook.isSessionValid())
{
mFacebook.authorize(this, new String[] {"user_birthday","email",
"user_relationships","user_religion_politics","user_hometown",
"user_location","user_relationship_details","user_education_history",
"user_likes","user_interests", "user_activities"},
new DialogListener()
{
@Override
public void onComplete(Bundle values)
{
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("access_token", mFacebook.getAccessToken());
editor.putLong("access_expires", mFacebook.getAccessExpires());
editor.commit();
/* access the graph API */
Log.d("Facebook-Example-Friends Request", "Started API request");
mAsyncRunner.request("me/friends", new FriendsRequestListener());
Log.d("Facebook-Example-Friends Request", "Finished API request");
}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {}
});
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
mFacebook.authorizeCallback(requestCode, resultCode, data);
}
public class FriendsRequestListener implements com.facebook.android.AsyncFacebookRunner.RequestListener
{
/**
* Called when the request to get friends has been completed.
* Retrieve and parse and display the JSON stream.
*/
public void onComplete(final String response)
{
try
{
// process the response here: executed in background thread
Log.d("Facebook-Example-Friends Request", "response.length(): " + response.length());
Log.d("Facebook-Example-Friends Request", "Response: " + response);
final JSONObject json = new JSONObject(response);
JSONArray d = json.getJSONArray("data");
int l = (d != null ? d.length() : 0);
Log.d("Facebook-Example-Friends Request", "d.length(): " + l);
for (int i=0; i<l; i++)
{
JSONObject o = d.getJSONObject(i);
String n = o.getString("name");
String id = o.getString("id");
TextView tv = new TextView(Login.this);
tv.setText(n);
((LinearLayout) linearLayout).addView(tv);
}
}
catch (JSONException e)
{
Log.w("Facebook-Example", "JSON Error in response");
}
}
}
}
जब आप डीबग कर रहे हैं, यह वास्तव में मित्र अनुरोध श्रोता पर onComplete कॉलबैक विधि हिट करता है? –
अरे, अगर मेरे उत्तर ने इसे ठीक करने में मदद की है, तो आपको इसे स्वीकृत उत्तर के रूप में चिह्नित करना चाहिए (उत्तर के बगल में स्थित चेक मार्क पर क्लिक करके) –