Restfb - 发布Checkin时出错

时间:2015-01-12 21:07:17

标签: java facebook restfb

我正在尝试使用restfb中的标准代码在facebook上发布checkin但是我收到了错误。

我正在使用的代码:

    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)

我认为令牌很好,因为我成功发布了一张照片。 有人知道它为什么不起作用?

1 个答案:

答案 0 :(得分:0)

你有placeId左右的引号,这会使错误显示为无效的地方ID。 尝试删除它们!

<强>更新

根据文档,您必须传递您正在检查的地方的页面ID。

要获得一个有restfb的地方,你必须做类似的事情:

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

此外,graph API中已弃用了checkin的创建,他们建议您改为创建帖子。