Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android facebook java通过图形API获取用户名_Java_Android_Facebook_Facebook Graph Api_Facebook Android Sdk - Fatal编程技术网

android facebook java通过图形API获取用户名

android facebook java通过图形API获取用户名,java,android,facebook,facebook-graph-api,facebook-android-sdk,Java,Android,Facebook,Facebook Graph Api,Facebook Android Sdk,我想用Graph API从用户id中获取名称,我已经从SELECT查询中获得了用户id https://graph.facebook.com/"+id+"?fields=name 我不知道如何调用http/url查询并检索数据?因为您使用的是Android SDK,所以可以这样调用Graph API- Bundle params = new Bundle(); params.putString("fields", "name"); final String requestId = {act

我想用Graph API从用户id中获取名称,我已经从SELECT查询中获得了用户id

 https://graph.facebook.com/"+id+"?fields=name

我不知道如何调用http/url查询并检索数据?

因为您使用的是Android SDK,所以可以这样调用Graph API-

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

final String requestId = {actor-id};

Request request = new Request(session, requestId, params, HttpMethod.GET, new Request.Callback() {
   public void onCompleted(Response response) {
       GraphObject graphObject = response.getGraphObject();
       FacebookRequestError error = response.getError();
       if (graphObject != null) {
          if (graphObject.getProperty("id") != null) {
              String name = (String)graphObject.getProperty("name");
          }
      }
   }
});

Request.executeAndWait(request);

我能够通过这个请求解决问题,我从这个[链接]得到了解决方案

“id”来自参与者id的第一个查询

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

    Request request = new Request(session, "search", params, HttpMethod.GET, new Request.Callback() {
    public void onCompleted(Response response) { try {
  JSONObject res = response.getGraphObject().getInnerJSONObject().getJSONArray("data").getJSONObject(0);
                                    final String name = (String) res.get("name");

我本可以使用SELECT name FROM user WHERE uid=id,但URL查询在浏览器上运行良好,我一次只能得到一个结果,我希望将重新封装分配给一个变量。我发布的代码也会这样做。您所说的url查询只是图形api。这个答案也是一样的,你试过了吗?试一下
executeBatchAsync
并将其分配给一个变量。比如回调,创建一个全局变量并分配给它
(String)graphObject.getProperty(“name”)
谢谢,很好,但是我如何在回调之外显示结果?创建一个全局变量并分配给它(String)graphObject.getProperty(“名称”)