有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Restfb发布签入时出错

我试图用restfb的标准代码在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)

我认为代币是好的,因为我成功地发布了一张照片。 有人知道为什么它不起作用


共 (1) 个答案

  1. # 1 楼答案

    你在placeId周围加了引号,这使得它成为一个无效的位置id,正如错误所说。 试着移除它们

    更新:

    根据文件,你必须通过你要登记的地方页面的id

    要想在restfb中占有一席之地,你必须做以下事情:

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

    此外,在graph API中不推荐创建签入,他们建议您改为创建帖子