Как в отличие от поста, который пользователю понравился в Facebook в Android
-
27-10-2019 - |
Вопрос
Я написал приложение Facebook Android, используя Restfb .
Для в отличие от сообщения, Facebook Graph API говорит, чтобы отправить HTTP DELETE в https://graph.facebook.com/postid/likesс токеном доступа
Пример кода
String postURL = FacebookAppConstants.GRAPH_API_ACCESS+"/"+postID+
"/likes&access_token="+FacebookAppConstants.accessToken;
Log.out(logFlag, logTag, "########Delete URL = "+postURL);
HttpDelete dislikePost = new HttpDelete(postURL);
Log.out(logFlag,logTag,"####Method : "+dislikePost.getMethod());
try {
HttpResponse response = httpClient.execute(dislikePost);
Log.out(logFlag, logTag,response.getStatusLine().toString());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Во время выполнения я получаю плохой запрос 400 от сервера.
HTTP/1.1 400 Bad Request
<HTML><HEAD>
D/SMF ( 2546): <TITLE>400 Bad Request</TITLE>
D/SMF ( 2546): </HEAD><BODY>
D/SMF ( 2546): <H1>Method Not Implemented</H1>
D/SMF ( 2546): Invalid method in request<P>
D/SMF ( 2546): </BODY></HTML>
Каково решение
Любая помощь
Спасибо.
Решение 2
String postURL = FacebookAppConstants.GRAPH_API_ACCESS+"/"+postID+
"/likes&access_token="+FacebookAppConstants.accessToken;
Log.out(logFlag, logTag, "########Delete URL = "+postURL);
HttpGet dislikePost = new HttpGet(postURL+"&method=DELETE");
try {
HttpResponse response = httpClient.execute(dislikePost);
HttpEntity entity = response.getEntity();
String body = EntityUtils.toString(entity);
Log.out(logFlag, logTag, "Body : "+body);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Другие советы
Три вещи, чтобы проверить:
- У тебя есть
publish_stream
расширенное разрешение для этого пользователя? - Пользователю уже нравится пост?
- Есть ли прокси -сервер в середине, который может привести к снижению запроса удаления HTTP? Попробуйте «подделать» запрос удаления, сделав запрос на получение, но добавив параметр,
&method=delete
По просьбе, который вы делаете - API Facebook будет рассматривать это как «удаление», даже если он прибудет в запрос Get
Должно быть лучшее сообщение об ошибке, возвращающееся в корпус ошибки 400 - если вы предоставите, что мы, вероятно, сможем помочь больше
Не связан с StackOverflow