使用Android Facebook SDK V4.0获取日期
作者:互联网
我已经在我的工作室中成功安装了android sdk v4.0.
我可以使用LoginButton正确登录.
到目前为止,一切正常.
我想为每个收集我感兴趣的用户数据提供一个字符串,例如:
字符串名称= USER_NAME
字符串= USER_MAIL邮件.
与3.0 SDK正确.
使用新的SDK无法执行此操作,我按照此线程中的说明进行操作:
Android Facebook 4.0 SDK How to get Email, Date of Birth and gender of User
我在文档和各个主题中阅读了有关“使用Graph API”的内容,但无法获取所需的数据,无法将它们分配给每个字符串.
这是我的代码(就像现在一样):
LoginButton loginButton;
private CallbackManager mCallbackManager;
//...
loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions(Arrays.asList("public_profile, email, user_birthday, user_friends"));
mCallbackManager = CallbackManager.Factory.create();
//...
loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
// App code
Toast.makeText(Ready.this, "Connected!", Toast.LENGTH_SHORT).show();
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
Log.v("LoginActivity", response.toString());
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender, birthday");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
// App code
Log.v("LoginActivity", "cancel");
}
@Override
public void one rror(FacebookException exception) {
// App code
Log.v("LoginActivity", exception.getCause().toString());
}
});
正如我之前所说,我与Facebook的联系非常完美,但是不知道如何将其分配给一个字符串,例如将电子邮件分配给另一个字符串.
提前非常感谢您.
解决方法:
如果您要说的是如何从GraphRequest获取名称和电子邮件,那就很简单:
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
try {
String id=object.getString("id");
String name=object.getString("name");
String email=object.getString("email");
String gender=object.getString("gender");
String birthday=object.getString("birthday");
//do something with the data here
} catch (JSONException e) {
e.printStackTrace(); //something's seriously wrong here
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,gender, birthday");
request.setParameters(parameters);
request.executeAsync();
GraphResponse包含诸如使用的HTTPConnect,遇到的任何错误等信息.假设一切都按预期进行,则只需JSONObject对象即可检索请求的数据.
标签:android,facebook-graph-api,facebook-sdk-4-0 来源: https://codeday.me/bug/20191028/1952798.html