通过Facebook的图形API作为Facebook应用程序创建“秘密”事件

时间:2012-12-21 14:24:10

标签: facebook facebook-graph-api facebook-apps

通过此POST请求,我能够通过我的脸书应用中的图形API创建脸书活动:

POST https://graph.facebook.com/<MY_APP_ID>/events?
      start_time=2013-12-21T19%3A30%3A00
     &end_time=2013-1221T20%3A30%3A00
     &name=test+event
     &access_token=<MY_APP_ACCESS_TOKEN>

响应是一个JSON,其中包含新创建的事件的ID。

在此之后,我尝试用'SECRET'隐私创建另一个事件:

POST https://graph.facebook.com/<MY_APP_ID>/events?
      start_time=2013-12-21T19%3A30%3A00
     &end_time=2013-1221T20%3A30%3A00
     &name=test+secret+event
     &privacy_type=SECRET
     &access_token=<MY_APP_ACCESS_TOKEN>

此处的响应也是一个带有已创建事件的id的JSON。

之后我尝试列出我的应用程序的事件:

 GET https://graph.facebook.com/<MY_APP_ID>/events/?access_token=<MY_APP_ACCESS_TOKEN>

在响应JSON中,我只能看到一个非秘密事件。缺少秘密。

在此之后,我试图逐个获取事件的细节:

 GET https://graph.facebook.com/<EVENT_ID>/?access_token=<MY_APP_ACCESS_TOKEN>

如果使用非秘密事件的id,则响应包含该事件的所有详细信息,但是当我使用secret-event的id时,它会以错误msg响应:

{
  "error": {
    "message": "Unsupported get request.", 
    "type": "GraphMethodException", 
    "code": 100
  }
}

为什么我无法使用我的应用创建SECRET(仅限邀请)事件?

3 个答案:

答案 0 :(得分:3)

根据图谱API Events页面,可以通过图谱API:用户,页面和应用程序为三种对象类型创建事件:

  

User,Page和Application对象具有事件连接。

但是,Graph API Event页面仅提供有关如何创建事件的User和Page部分的链接(请参阅Graph API事件页面,创建事件部分)。没有进一步引用应用程序事件,Application部分未提及事件连接。

在两个链接到事件类型中,使用privacy_type参数创建一个事件仅支持用户,而不是页面:

用于创建用户事件的支持参数

  

name,start_time,end_time,description,location,location_id, privacy_type

来源:User Graph API details on Facebook Developers

支持创建页面事件的参数:

  

name,start_time,end_time,description,location,location_id

来源:Page Graph API details on Facebook Developers

所以我的猜测是应用程序遵循Page Event连接参数,但是没有正确记录。

答案 1 :(得分:1)

如果您将其创建为SECRET,则无法使用应用访问令牌检索该事件,因为您的应用不是用户,也看不到该事件。

只有创建它的用户和其他与会者才能看到它 - 用户的访问令牌应该返回事件,因为用户访问令牌的行为与用户相同,并且如果它们被标记为参加活动,他们可以看到它

答案 2 :(得分:0)

我猜你应该使用以下方法之一:

GET /EVENT_ID/invited/USER_ID
GET /EVENT_ID/attending/USER_ID
GET /EVENT_ID/maybe/USER_ID
GET /EVENT_ID/noreply/USER_ID
GET /EVENT_ID/declined/USER_ID

或者看看这个:

http://developers.facebook.com/docs/reference/api/event/