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.

¿Fue útil?

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:

  1. Tienes el publish_stream permiso extendido para ese usuario?
  2. ¿Al usuario ya le gusta la publicación?
  3. ¿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
scroll top