Put_connections用Koala创建一个新事件?

时间:2014-01-08 07:57:04

标签: ruby-on-rails facebook-graph-api koala koala-gem

我正在尝试使用Koala gem创建一个新事件,并且当我尝试使用格式错误的日期时间值更新事件时,它返回时出现的错误相同。

我现在可以更新,但仍然无法创建活动。

以下是我在更新方法中使用的代码:

start_time   = safe_params[:start_time].in_time_zone
end_time     = safe_params[:end_time].in_time_zone

graph.put_connections(safe_params[:fb_id], "event", {
  name: safe_params[:name], 
  description: safe_params[:description], 
  privacy: safe_params[:privacy]
})

这是我试图用来创建新事件对象的代码:

graph.put_connections("/me/events", "event", { #this is the line that errors
  name: safe_params[:name], 
  description: safe_params[:description], 
  privacy: safe_params[:privacy]
})

根据Facebook关于创建活动(https://developers.facebook.com/docs/graph-api/reference/user/events/)的文档,我应该能够通过向/ me / events发布帖子来创建新活动。有人有任何想法吗?

我也尝试过:

graph.put_connections("/"+current_user.fb_id.to_s+"/events", "event", {

谢谢!

2 个答案:

答案 0 :(得分:0)

如果你做这样的事情会怎么样?

graph.put_connections("me", "events", {
  name: safe_params[:name], 
  description: safe_params[:description], 
  privacy: safe_params[:privacy],
  start_time: ...,
  end_time: ...
})

答案 1 :(得分:0)

因此,在弄乱Facebook的Graph Explorer并尝试使用put_connections进行数百种不同的组合后,我决定使用考拉进行直接的graph_call。

最后得到了ID回复。我差点儿哭了。我以为我会与社区分享,以防其他人试图做同样的事情。

event_response = graph.graph_call("/me/events",{
    name:safe_params[:name], 
    start_time:   safe_params[:start_time], 
    privacy_type: safe_params[:privacy], 
    access_token: current_user.oauth_token}, "POST")
safe_params[:fb_id] << event_response["id"]
@event = Event.create safe_params

我在存储变量event_response中进行调用,因为返回的Facebook Id已在我的应用中使用。

我发现的第一件事是:尽管使用“隐私”作为从Facebook获取并在文档中说明时隐私字段的名称,“privacy_type”实际上是您想要的(在另一个SO帖子中找到它)。

我发现的第二件事是即使您在进行graph_call时进行了身份验证(拥有用户令牌),您仍然需要传递current_user访问令牌以及发出POST graph_call。

希望这有助于某人!