我试图用restfb的standart代码在facebook中发布签到,但我得到了一个错误。
我使用的代码如下:
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)我觉得这个代币很好,因为我成功地发布了一张照片。有人知道它为什么不工作吗?
发布于 2015-01-13 05:11:26
您在placeId两边有引号,这使得它成为一个无效的位置id,正如错误所述。试着去掉它们!
更新:
根据文档,您必须传递正在签入的位置的页面id。
要想在restfb中获得一席之地,你必须这样做:
Page page = facebookClient.fetchObject("cocacola", Page.class);
page.getId() // that's what you want此外,在graph API中不建议创建签入,他们建议您创建一个post。
https://stackoverflow.com/questions/27910748
复制相似问题