Как в отличие от поста, который пользователю понравился в Facebook в Android

StackOverflow https://stackoverflow.com/questions/9324618

Вопрос

Я написал приложение 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();
    }

Другие советы

Три вещи, чтобы проверить:

  1. У тебя есть publish_stream расширенное разрешение для этого пользователя?
  2. Пользователю уже нравится пост?
  3. Есть ли прокси -сервер в середине, который может привести к снижению запроса удаления HTTP? Попробуйте «подделать» запрос удаления, сделав запрос на получение, но добавив параметр, &method=delete По просьбе, который вы делаете - API Facebook будет рассматривать это как «удаление», даже если он прибудет в запрос Get

Должно быть лучшее сообщение об ошибке, возвращающееся в корпус ошибки 400 - если вы предоставите, что мы, вероятно, сможем помочь больше

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top