我正在尝试使用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)
我认为令牌很好,因为我成功发布了一张照片。 有人知道它为什么不起作用?
答案 0 :(得分:0)
你有placeId
左右的引号,这会使错误显示为无效的地方ID。
尝试删除它们!
<强>更新强>
根据文档,您必须传递您正在检查的地方的页面ID。
要获得一个有restfb的地方,你必须做类似的事情:
Page page = facebookClient.fetchObject("cocacola", Page.class);
page.getId() // that's what you want
此外,graph API中已弃用了checkin的创建,他们建议您改为创建帖子。