【问题标题】:Posting to Facebook without a link在没有链接的情况下发布到 Facebook
【发布时间】:2013-05-23 08:20:23
【问题描述】:

我正在开发一个 API 以允许发布到 Facebook,使用 Graph API over REST,将 HTTP 发布请求发送到 https://graph.facebook.com/me/feed(在成功的 OAuth2 身份验证之后)。

我可以指定 messagelink 并发布链接(但忽略消息?),我还可以包括 namecaptiondescription 来处理这些元素 - 所以链接没问题。

如果我只使用message 或只使用picture,我会收到错误:

(#100) 缺少消息或附件

如果我使用message picture,它会发布消息,没有任何图片。 (哪个有用,但不是预期的行为?)

我可以获取图片的唯一方法似乎是作为链接(包括它作为缩略图)。


我浏览了文档,但找不到任何有用的信息 - 所有示例都显示链接。

我的主要问题是:在没有图片或链接的情况下发布消息的预期方式是什么?

但如果有办法将图片贴到墙上也很有用? (非缩略图,带灯箱)

【问题讨论】:

  • URL 是 https://graph.facebook.com/me/feed?access_token=<snip>&format=json - 据推测,数据被指定为额外的 URL 参数。当我手动将消息放入查询字符串(即https://graph.facebook.com/me/feed?message=test+message&access_token=<snip>&format=json)时,它现在似乎正在工作,因此可能是 CF 的 cfhttpparam 的错误。

标签: facebook facebook-graph-api coldfusion cfhttp facebook-rest-api


【解决方案1】:

实际代码更复杂,但这里简化以演示问题。

这失败了:

<cfhttp
    result = "local.Response"
    method = "post"
    url    = #Arguments.Url#
    >
    <cfhttpparam type="url" name="Message" value="#Arguments.Message#" />
</cfhttp>

这行得通:

<cfset Arguments.Url &= '&message=' & encodeForUrl(Arguments.Message) />

<cfhttp
    result = "local.Response"
    method = "post"
    url    = #Arguments.Url#
    >
    <cfhttpparam type="url" name="dummy" value="ignore" />
</cfhttp>

(虚拟 cfhttpparam 是因为如果 POST 请求不包含至少一个参数,CF 会报错。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-31
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2011-09-02
    相关资源
    最近更新 更多