Facebook OAuth на Android - PullRequest
       6

Facebook OAuth на Android

1 голос
/ 30 апреля 2011

Каждый раз, когда я тестирую свое приложение на эмуляторе. «Произошла ошибка с AppName. Повторите попытку позже». Я включил доступ в Интернет в манифесте .XML.

Это то, что я имею до сих пор:

package com.xxxxxx;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import com.facebook.android.DialogError;
import com.facebook.android.Facebook;
import com.facebook.android.Facebook.DialogListener;
import com.facebook.android.FacebookError;
import com.facebook.android.Util;

public class LunchtimeActivity extends Activity {

    Facebook facebook = new Facebook("xxxxxxxxxxxxxx");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);

        facebook.authorize(this, new String [] {"user_location", "friend_location", "user_events", "friends_events"}, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {}

            @Override
            public void onFacebookError(FacebookError error) {}

            @Override
            public void onError(DialogError e) {}

            @Override
            public void onCancel() {}
        });

        Bundle parameters = new Bundle();
        parameters.putString( "fields", "id,name" ); 

        try {
            String response = facebook.request( "me/friends", parameters ); 

            JSONObject json = Util.parseJson( response );

            JSONArray data = json.getJSONArray( "data" );

            for ( int i = 0; i < data.length(); i++ )
            {
                JSONObject friend = data.getJSONObject( i );

                String id = friend.getString( "id" );
                String name = friend.getString( "name" );
                Log.v("JSON", id);
                Log.v("JSON", name);
            }
        }
        catch (Exception e) {}
        catch (FacebookError f) {}

        TextView tv = new TextView(this);
        tv.setText("Hello, Android");
        setContentView(tv);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        facebook.authorizeCallback(requestCode, resultCode, data);
    }
}

enter image description here

Выход Logcat:

...
05-01 02:21:01.601: DEBUG/Facebook-WebView(234): Webview loading URL: fbconnect://success/?error=invalid_scope&error_description=Unsupported+scope%3A+%27friend_location...

Выход консоли Eclipse:

[2011-05-01 02:18:57 - Lunchtime_1.0] ------------------------------
[2011-05-01 02:18:57 - Lunchtime_1.0] Android Launch!
[2011-05-01 02:18:57 - Lunchtime_1.0] adb is running normally.
[2011-05-01 02:18:57 - Lunchtime_1.0] Performing com.lunch.LunchtimeActivity activity launch
[2011-05-01 02:18:57 - Lunchtime_1.0] Automatic Target Mode: Preferred AVD 'Now' is not available. Launching new emulator.
[2011-05-01 02:18:57 - Lunchtime_1.0] Launching a new emulator with Virtual Device 'Now'
[2011-05-01 02:19:03 - Emulator] 2011-05-01 02:19:03.471 emulator[3575:903] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.
[2011-05-01 02:19:03 - Lunchtime_1.0] New emulator found: emulator-5554
[2011-05-01 02:19:03 - Lunchtime_1.0] Waiting for HOME ('android.process.acore') to be launched...
[2011-05-01 02:20:20 - Lunchtime_1.0] WARNING: Application does not specify an API level requirement!
[2011-05-01 02:20:20 - Lunchtime_1.0] Device API version is 7 (Android 2.1-update1)
[2011-05-01 02:20:20 - Lunchtime_1.0] HOME is up on device 'emulator-5554'
[2011-05-01 02:20:20 - Lunchtime_1.0] Uploading Lunchtime_1.0.apk onto device 'emulator-5554'
[2011-05-01 02:20:20 - Lunchtime_1.0] Installing Lunchtime_1.0.apk...
[2011-05-01 02:20:39 - Lunchtime_1.0] Success!
[2011-05-01 02:20:39 - Lunchtime_1.0] Starting activity com.lunch.LunchtimeActivity on device emulator-5554
[2011-05-01 02:20:43 - Lunchtime_1.0] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.lunch/.LunchtimeActivity }

Я буквально просто использую SDK Facebook, предоставленный самой Facebook для Android, и не могу заставить его работать Есть идеи?

1 Ответ

2 голосов
/ 01 мая 2011

Вы используете friend_location вместо friends_location

Проверьте последние строки logcat:

05-01 02: 21: 01.601: DEBUG / Facebook-WebView (234): URL загрузки веб-просмотра: fbconnect: // success /? Error = invalid_scope & error_description = Не поддерживается + область действия% 3A +% 27friend_location ...

Кстати, неплохо было бы добавить хоть какой-нибудь вывод журнала в public void onFacebookError(FacebookError error) {} и catch (Exception e) {} catch (FacebookError f) {}. Это сэкономит вам (и нам) много времени:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...