2

我在 Rails 3.2 应用程序中使用 Koala gem。

我正在尝试将包含用户生成的照片的操作发布到 Facebook 应用程序。根据FB的文档,我需要发布的网址是:

https://graph.facebook.com/uid/namespace:action?object=http://path/to/page&image[0][url]=http://path/to/image.jpg&image[0][user_generated]=true

如果我使用 Facebook 的调试器手动测试它,它会完美运行。但是我在使用考拉时遇到了麻烦。

我正在使用以下方法:

Koala::Facebook::API.new(app_token).put_connections( uid, namepsace:action, url )

如果我使用:

url = "http://path/to/page"

然后该动作正确发布到 Facebook,但没有用户生成的照片。

如果我使用:

url = "http://path/to/page&image[0][url]=http://path/to/image.jpgimage[0][user_generated]=true"

我在日志中收到错误

#<Koala::Facebook::APIError: OAuthException: (#3502) Object at URL http://path/to/page&image[0][url]=http://path/to/image.jpg&image[0][user_generated]=true has og:type of 'website'. The property 'object' requires an object of og:type 'namespace:object'.  (http response code: 404)>

使用考拉构建所需帖子网址的正确方法是什么?或者什么是开始调试我当前代码的好方法?还是我完全走错了路?

4

3 回答 3

1

我也为此苦苦挣扎,因为 Facebook 的文档和考拉的文档在我看来都不是很清楚:

Koala::Facebook::API.new(access_token).put_connections(
  uid,
  "namespace:action",
  "product" => "[URL_TO_PRODUCT]",
  "image[0][user_generated]" => true,
  "image[0][url]" => "[URL_TO_USER_GENERATED_IMAGE]",
  "fb:explicitly_shared" => true,
  "message" => "[DESCRIPTION]"
)

另一件事是目标 URL 必须具有og:type="namespace:product"

希望这可以帮助

于 2012-12-04T15:48:12.523 回答
0

您是否在 Facebook Debugger 中检查过您的网址? http://developers.facebook.com/tools/debug

从您得到的错误消息看来,您应该将og:type设置为namespace:object并获取自定义图像,您应该将og:image设置为http://your.domain.com/path/to/user/generated/image

于 2012-07-12T12:40:17.230 回答
0

我和你一样使用 put_connections,但这不是必需的,你可以使用put_wall_post方法。

我请求了许可:publish_actions

在我的控制器的方法中,我有:

api = Koala::Facebook::API.new(@oauth_token)
api.put_wall_post("Testing post on Timeline", {
    :name => "Im a wall post",
    :link => "http://www.example.com",
    :caption => "Im a caption",
    :description => "Im a long description of an attachment",
    :picture => "http://www.example.com/picture.jpg" 
}, @users_facebook_id)

有了这个,您可以发布到用户的时间轴,有图像、描述等。

于 2013-05-02T16:48:42.153 回答