Restfb - ошибка публикации Checkin

Я пытаюсь опубликовать регистрацию в facebook со стандартным кодом из restfb, но получаю сообщение об ошибке.

Код, который я использую:

    Map<String, String> coordinates = new HashMap<String, String>();
    coordinates.put("latitude", "37.06");
    coordinates.put("longitude", "-95.67");
    FacebookType publishCheckinResponse = facebookClient.publish("me/checkins", FacebookType.class,Parameter.with("message", "message"),
            Parameter.with("coordinates", coordinates),
            Parameter.with("place", 1234)
    );

когда facebookClient инициализируется токеном доступа.

Ошибка:

Exception in thread "main" com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: (#100) Requires a valid Place Page ID (code 100, subcode null)
at com.restfb.DefaultFacebookClient$DefaultGraphFacebookExceptionMapper.exceptionForTypeAndMessage(DefaultFacebookClient.java:1050)
at com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:967)
at com.restfb.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:900)
at com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:841)
at com.restfb.DefaultFacebookClient.publish(DefaultFacebookClient.java:420)
at com.restfb.DefaultFacebookClient.publish(DefaultFacebookClient.java:440)
at FacebookUpload.facebookInit(FacebookUpload.java:45)
at FacebookUpload.main(FacebookUpload.java:55)

Я думаю, что жетон хорош, потому что мне удалось опубликовать фотографию. Кто-нибудь знает, почему он не работает?


person nat    schedule 12.01.2015    source источник


Ответы (1)


У вас есть кавычки вокруг placeId, что делает его недопустимым идентификатором места, как говорит ошибка. Попробуйте удалить их!

Обновление:

Согласно документации, вы должны передать идентификатор страницы места, в котором вы регистрируетесь.

Чтобы получить место с restfb, вам нужно сделать что-то вроде этого:

Page page = facebookClient.fetchObject("cocacola", Page.class);
page.getId() // that's what you want

Кроме того, создание возврата не рекомендуется в graph API и предлагают вместо этого создать пост.

person Vincent Durmont    schedule 12.01.2015
comment
Если placeId определено в коде, конечно. - person Shawn Bush; 13.01.2015
comment
Спасибо, но как я узнаю, какой placeId я должен указать? Пример кода в restFB написал там 1234 но у меня не работает и показывает ту же ошибку - person nat; 13.01.2015
comment
Я только что обновил ответ. 1234 был просто заполнителем в документации, чтобы сказать вам, что вы должны предоставить идентификатор. - person Vincent Durmont; 13.01.2015
comment
Спасибо большое! если он устарел в API графа, я не могу его использовать - person nat; 13.01.2015