Проблема с доступом к друзьям с помощью Facebook-Android SDK

Я боролся с Android и графическим API Facebook, и я уверен, что это легко для программистов среднего уровня. Мне нужно очень простое приложение для Android, которое регистрирует пользователя в Facebook, получает согласие пользователей на доступ к информации и, наконец, бесшовно запрашивает API-интерфейс графа, чтобы получить друзей пользователей. Я упомянул о бесшовной работе, потому что я видел много примеров приложений, которые требуют, чтобы пользователь нажимал кнопку «найти друзей», но я не хочу этого. Я хочу извлечь друзей пользователей, не требуя от него чего-либо нажимать.

Я вставил код ниже. Я могу войти в систему и предоставить разрешение моему приложению. Затем я ожидаю, что он отобразит моих друзей, но он просто направляет меня на пустую страницу. Проблема может заключаться в том, что я обращаюсь к API графа не в том месте, поскольку Logcat не содержит сообщений, которые я печатаю до и после запроса. Не могли бы вы мне помочь.

открытый класс FacebookLogin расширяет активность {

Facebook mFacebook = new Facebook("XXXXXXXXXXXX");
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(mFacebook);
View linearLayout;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    linearLayout = findViewById(R.id.main_layout);

    mFacebook.authorize(this, new DialogListener() {
        @Override
        public void onComplete(Bundle values) 
        {
            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 RequestListener 
{
    /**
     * Called when the request to get friends has been completed.
     * Retrieve, parse and display the JSON stream.
     */
    public void onComplete(final String response)
    {
        Log.d("Facebook-Example-Friends Request", "FriendsListenerOnComplete");

        try 
        {
            JSONObject json = Util.parseJson(response);
            final JSONArray friends = json.getJSONArray("data");

            FacebookLogin.this.runOnUiThread(new Runnable()
            {
                public void run()
                {
                    int l = (friends != null ? friends.length() : 0);

                    for (int i=0; i<l; i++) 
                    {
                        try
                        {
                            JSONObject o = friends.getJSONObject(i);

                            TextView tv = new TextView(FacebookLogin.this);
                            tv.setText(o.getString("name"));
                            ((LinearLayout) linearLayout).addView(tv);
                        }
                        catch(JSONException e)
                        {
                            Toast.makeText(getApplicationContext(), "JSON parsing error", Toast.LENGTH_LONG);
                        }
                    }
                }
            }); 
        }
        catch(JSONException e)
        {
            Log.d("Facebook-Example-Friends Request", "JSON Error in response");
        }
        catch(FacebookError e)
        {
            Log.d("Facebook-Example-Friends Request", "Facebook Error in response");
        }   
    }
}

}


person NewToAndroid    schedule 18.11.2011    source источник
comment
Logcat пишет запрос Started API? Если нет, попробуйте добавить Log.d в onFacebookError, onError, onCancel, чтобы увидеть, что он говорит.   -  person Daverix    schedule 18.10.2012


Ответы (1)


я думаю, вы видите этот ответ, у вас есть представление. Интеграция Twitter в мое приложение для Android

и

http://android-sample-solution.blogspot.com

person Piyush    schedule 19.11.2011