OAuth异常: (#100) 参数无效


OAuthException: (#100) Invalid parameter

我已经为此斗争了一天左右,但我找不到错误在哪里。我正在为一个朋友建立一个网站,他每个月都会举办一两次这个大型派对。我希望他能够在网站上创建一个事件,并使用fb php sdk api将此事件发送到Facebook。

就网站本身创建活动而言,我得到了一些工作。我使用 php sdk 创建了一个事件。然而,将这两者结合起来是麻烦开始的地方。从理论上讲,当我想将事件发送到 facebook 时,我使用网站数据库中的事件 id 来收集信息,将其插入变量中,然后在创建 facebook 事件后通过数组将这些变量发送到 api 调用。但是,我收到" OAuthException: (#100) Invalid parameter "错误。

考虑到连接到 fb 并获取 acces 令牌工作正常,并且我正在从数据库中检索正确的信息,这是我的代码:

// - image upload
    $createEventCover = http://www.mywebsite.com/flyer/flyer.jpg
    $createEvent[basename($createEventCover)] = "@".realpath($createEventCover); 

//  - textual data
    $createEvent = array(
        'access_token' => $accessToken,
        'name' => $createEventName,
        'start_time' => $createEventStartTime,
        'end_time' => $createEventEndTime,
        'description' => $createEventDescription,
        'location_id' => $createEventLocation_id,
        'privacy_type' => $createEventPrivacy_type
    );
// connect with api and create event.
try {
    $eventCreate = $FaceBook -> api("/me/events", "post", $createEvent);
    $facebookEventId = $eventCreate['id'];
    $cover['cover_url']  = $createEventCover;
    $eventUpdate = $facebook->api( "/" . $eventCreate['id'], "post", $cover );      
    //$eventUpdate = $FaceBook -> api( "/".$facebookEventId, "post", $createEventCover );       
    echo "<script>window.open('https://www.facebook.com/events/".$facebookEventId."/','_blank')</script>'n";
} catch( FacebookApiException $e){
    echo "//event creation error'n";
    echo "<br />'n";    
    echo "<br />".$e."<br />'n";
} 

在我将信息发送到数组之前,我会回显所有内容,以便我知道我已将正确的数据发送到正确的位置,并且所有数据似乎都匹配。当我用文本数据而不是 php 变量填充数组时,例如 "name" => "testevent" 而不是"name" => $testevent,创建事件。一旦我使用"名称"=> $testevent,而不是"name" => "testevent",,我就会收到错误。

我已经吞噬了谷歌并吃了一半的 stacoverflow 无济于事。有人可以帮助我吗?

亲切问候

根据@CBroe的要求。我有$createEvent print_r:

Array
(
    [access_token] => *removed*
    [name] => testevent
    [start_time] => DateTime Object
    (
        [date] => 2015-05-19 23:30:00
        [timezone_type] => 3
        [timezone] => Europe/Berlin
    )
[end_time] => DateTime Object
    (
        [date] => 2015-05-19 04:00:00
        [timezone_type] => 3
        [timezone] => Europe/Berlin
    )
[description] => Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. 
[location_id] => 260864353982110
[privacy_type] => SECRET
)

这是事件创建现在失败并显示错误的时候:"OAuthException: (#100( 参数 event_info-start_time 必须是有效时间">

请注意,这仅在我通过变量插入时间时才会发生。一旦我用文本日期替换变量2015-05-19T23:30:00+0200事件就会被规则地创建,我将日期转换为ISO8601

$FBcreateEventStartTime = new DateTime($createEventStartTime); 
$FBcreateEventStartTime -> format(DateTime::ISO8601);

与结束时间相同,并且在我当然已替换的初始代码中显示的数组中

'start_time' => $createEventStartTime,
'end_time' => $createEventEndTime,

'start_time' => $FBcreateEventStartTime,
'end_time' => $FBcreateEventEndTime,

你有正确的符号时间吗?尝试以"hh:mm:ss"格式发送start_time时,我收到了相同的错误 - 必须添加日期和时间区偏移量(这也是必需的(:YYYY-mm-ddThh:mm:ss+zz

https://developers.facebook.com/docs/graph-api/reference/user/#events

如果您的事件是使用文本数据而不是您生成的变量成功创建的,您是否可能尝试传递 FB 返回的值是数组键一部分的变量?类似于成功的事件 ID 不是$eventCreate,而是$eventCreate['id']。也许尝试逐个删除 1 个参数以确定有问题的参数,然后为我们转储它,以便我们可以确定它的问题?