Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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
Java 如何正确使用Facebook graph API(android)的搜索查询?_Java_Facebook - Fatal编程技术网

Java 如何正确使用Facebook graph API(android)的搜索查询?

Java 如何正确使用Facebook graph API(android)的搜索查询?,java,facebook,Java,Facebook,我正在尝试运行一个查询,使用android的搜索查询facebok graf api搜索位置 如果我尝试在Graph API资源管理器中运行此查询,我会得到 但从编程角度来说,这是不可能的。我尽量做到: new GraphRequest(AccessToken.getCurrentAccessToken(),"/search?q=coffee&type=place&center=37.76,-122.427",null,HttpMethod.GET,new GraphReques

我正在尝试运行一个查询,使用android的搜索查询facebok graf api搜索位置

如果我尝试在Graph API资源管理器中运行此查询,我会得到

但从编程角度来说,这是不可能的。我尽量做到:

new GraphRequest(AccessToken.getCurrentAccessToken(),"/search?q=coffee&type=place&center=37.76,-122.427",null,HttpMethod.GET,new GraphRequest.Callback()
    {
        public void onCompleted(GraphResponse response)
        {
            Log.v("HelloFacebook", response.toString());
        }
    }).executeAsync();
}
我什么也得不到(参数距离必须是数字)

如果我在没有距离的情况下尝试,我也不会收到任何消息,但会收到另一条消息(请求此资源还需要访问令牌)


有什么问题吗?

在Facebook graph API中搜索的正确语法:

GraphRequest request = GraphRequest.newGraphPathRequest(
  accessToken,
  "/search",
  new GraphRequest.Callback() {
    @Override
    public void onCompleted(GraphResponse response) {
      // Insert your code here
    }
});

Bundle parameters = new Bundle();
parameters.putString("type", "place");
parameters.putString("center", "53,27");
parameters.putString("distance", "30000");
request.setParameters(parameters);
request.executeAsync();

不幸的是,Vadim Korzun提供的语法并不直接适用于我。但它给了我一些想法。我想按名字找人。这里是我根据官方
GraphRequest
-类的
newplacesearch请求(…)
-方法执行的代码:

    AccessToken accessToken = AccessToken.getCurrentAccessToken();

    Bundle parameters = new Bundle(2);
    parameters.putString("type", "user");
    parameters.putString("q", "Albert Einstein");

    GraphRequest.Callback wrapper = new GraphRequest.Callback() {
        @Override
        public void onCompleted(GraphResponse response) {
            try {
                JSONObject  jso = response.getJSONObject();
                JSONArray   arr = jso.getJSONArray( "data" );

                for (int i = 0; i < (arr.length()); i++) {
                    JSONObject json_obj = arr.getJSONObject(i);

                    // START: Your code goes here
                    String id = json_obj.getString("id");
                    String name = json_obj.getString("name");
                    // ...
                    // END: Your code goes here
                }
            } catch (JSONException e) {
                Log.e("name: ", e.getMessage());
            }
        }
    };

    GraphRequest gr = new GraphRequest(accessToken, "search", parameters, HttpMethod.GET, wrapper);
    gr.executeAsync();
AccessToken AccessToken=AccessToken.getCurrentAccessToken();
Bundle参数=新Bundle(2);
参数。putString(“类型”、“用户”);
参数。putString(“q”,“Albert Einstein”);
GraphRequest.Callback包装器=新的GraphRequest.Callback(){
@凌驾
未完成公共空白(图形响应){
试一试{
JSONObject jso=response.getJSONObject();
JSONArray arr=jso.getJSONArray(“数据”);
对于(int i=0;i<(arr.length());i++){
JSONObject json_obj=arr.getJSONObject(i);
//开始:代码在这里
String id=json_obj.getString(“id”);
String name=json_obj.getString(“name”);
// ...
//结束:你的代码在这里
}
}捕获(JSONException e){
Log.e(“名称:,e.getMessage());
}
}
};
GraphRequest gr=新GraphRequest(accessToken,“搜索”,参数,HttpMethod.GET,包装器);
gr.executeAsync();
希望这有助于