Facebookのログインを作成しています。 Facebookのユーザーログインは1回だけで、FacebookのユーザーIDを取得する必要があります。私が使用していたコードがあるfacebookを使用してログインします。android
:
// 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を取得する必要があります一度だけログインするユーザーが必要です。
ありがとうございました。
EDIT:
私は、インターネットへのアクセス許可を追加しました。だから問題は私のインターネットにあった。 Facebookは到達できませんでした。私はnullを返している
String id = me.getString("id");
:この行の :問題があることでどのように今までに今
。