Cómo, a diferencia de una publicación, que un usuario le ha gustado en Facebook en Android
-
27-10-2019 - |
Pregunta
He escrito la aplicación de Android de Facebook usando repente .
Para una publicación, la API de Facebook Graph dice que enviar un HTTP Eliminar a https://graph.facebook.com/postid/likescon el token de acceso
El código de muestra es
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();
}
Mientras ejecuto estoy recibiendo una mala solicitud 400 del servidor.
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>
cuál es la solución
Alguna ayuda
Gracias.
Solución 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();
}
Otros consejos
Tres cosas para verificar:
- Tienes el
publish_stream
permiso extendido para ese usuario? - ¿Al usuario ya le gusta la publicación?
- ¿Hay un servidor proxy en el medio que podría estar causando que la solicitud de eliminación HTTP se elimine? Intente 'fingir' una solicitud de eliminación haciendo una solicitud GET pero agregando un parámetro,
&method=delete
a la solicitud que está haciendo: la API de Facebook tratará esto como un 'eliminar' incluso si llega a una solicitud GET
Debería haber un mejor mensaje de error que regrese en el cuerpo del error 400: si proporciona que probablemente podamos ayudar más
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow