簡體   English   中英

使用Facebook Android登錄

[英]Login using facebook android

我正在用Facebook創建登錄名。 用戶使用facebook登錄僅1次,我需要獲取它的facebook userID。

有我正在使用的代碼:

// Login with facebook
    public void loginFB(View view) {

        System.out.println("started");
        facebook = new Facebook(kAppId);

        facebook.authorize(this, new DialogListener() {

            @Override
            public void onComplete(Bundle values) {
                System.out.println("onComplete");

                new Thread(new Runnable() {
                    public void run() {
                        JSONObject me = null;
                        try {
                            me = new JSONObject(facebook.request("me"));
                        } catch (MalformedURLException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                        try {
                            System.out.println("Login with fb");
//here i should get it's user id                            
String id = me.getString("id");
                            System.out.println("id = " + id);                                                       



                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                }).start();

            }


            @Override
            public void onFacebookError(FacebookError error) {
                error.getMessage();
                System.out.println("onFacebookError");
            }

            @Override
            public void onError(DialogError e) {
                e.getMessage();
                System.out.println("DialogError");
            }

            @Override
            public void onCancel() {
                System.out.println("onCancel");
            }

        });

    }

    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
            facebook.authorizeCallback(requestCode, resultCode, data);  
    }  

所以我在回調到此方法時遇到異常:

        @Override
        public void onError(DialogError e) {
            e.getMessage();
            System.out.println("DialogError");
        }

和例外:

com.facebook.android.DialogError: The connection to the server timed out.

所以我應該在代碼中更改某些內容,否則會有其他問題?

基本上,我需要用戶在下載應用程序時僅登錄一次,並且我需要獲取他的用戶ID。

謝謝。

編輯:

我已經添加了對互聯網的許可。 所以問題出在我的互聯網上。 Facebook無法訪問。

現在的問題是:在這一行中:

String id = me.getString("id");

我返回null。

您是否修改了AndroidManifest.xml以允許該應用訪問互聯網?

<uses-permission android:name="android.permission.INTERNET"/>

http://developers.facebook.com/docs/mobile/android/build/#xml

在JSONObject中,您需要執行以下操作:

JSONObject me =  Util.parseJson((facebook.request("me"));

/me將返回一個JSON對象

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM