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