2016-04-22 2 views
0

Я использую следующее для кода для извлечения данных из Facebook Graph API, и он работает.Поиск в Facebook Graph API на Android

GraphRequest.newGraphPathRequest(AccessToken.getCurrentAccessToken() 
         , "/me" 
         , new GraphRequest.Callback() { 
          @Override 
          public void onCompleted(GraphResponse response) { 
           showToast(response.toString()); 
           ((TextView) findViewById(R.id.result_textview)).setText(response.toString()); 
          } 
         }).executeAsync(); 

Однако, когда я использую следующий поисковый запрос, который работает в Graph API Explorer, он больше не работает.

GraphRequest.newGraphPathRequest(AccessToken.getCurrentAccessToken() 
         , "https://stackoverflow.com/search?q=coffee&type=place" 
         , new GraphRequest.Callback() { 
          @Override 
          public void onCompleted(GraphResponse response) { 
           showToast(response.toString()); 
           ((TextView) findViewById(R.id.result_textview)).setText(response.toString()); 
          } 
         }).executeAsync(); 

Ошибка json ниже.

Response:responseCode:400, 
graphObject:null, 
error:{ 
    HttpStatus:400, 
    errorCode:100, 
    errorType:GraphMethodException, 
    errorMessage: Unsupported get request. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api 
} 
} 
+0

что вы пытаетесь сделать? почему вы используете этот api-узел графика? –

+0

Я пытаюсь искать места. – myatmins

ответ

2

Прочтите описание документации. Вы делаете это неправильно.

new GraphRequest(
    AccessToken.getCurrentAccessToken(), 
    "...?fields={fieldname_of_type_Location}", 
    null, 
    HttpMethod.GET, 
    new GraphRequest.Callback() { 
     public void onCompleted(GraphResponse response) { 
      /* handle the result */ 
     } 
    } 
).executeAsync() 

ИЛИ

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(); 

В поле вы можете использовать страну, долготу, широту, процитировать и т.д. Вот docs

Надеется, что это будет полезно для вас.

+0

Я пытаюсь это сделать. https://developers.facebook.com/docs/graph-api/using-graph-api#search – myatmins

+0

попробуйте этот ответ, если это не сработает, тогда дайте мне знать. Но вы должны обязательно добавить действительный запрос –

+0

, как я могу его использовать, если я хочу найти «кофе». – myatmins

Смежные вопросы