Java 使用facebook android登录
我正在使用facebook创建登录。用户登录facebook只需1次,我需要获得它的facebook用户ID 下面是我正在使用的代码:Java 使用facebook android登录,java,android,facebook-android-sdk,Java,Android,Facebook Android Sdk,我正在使用facebook创建登录。用户登录facebook只需1次,我需要获得它的facebook用户ID 下面是我正在使用的代码: // Login with facebook public void loginFB(View view) { System.out.println("started"); facebook = new Facebook(kAppId); facebook.authorize(this, new Dia
// 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");
me返回null。您是否修改了您的AndroidManifest.xml以允许应用程序访问internet
<uses-permission android:name="android.permission.INTERNET"/>
/me将返回一个JSON对象
JSONObject me = Util.parseJson((facebook.request("me"));