Php OAutheException:(#100)无效参数

Php OAutheException:(#100)无效参数,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我已经为此奋斗了一天左右,但我无法找出错误所在。 我正在为一个朋友建立一个网站,他每月举办一到两次大型聚会。我希望他能够在网站上创建一个事件,并使用FBPHPSDKAPI将此事件发送到facebook 我在网站上创建活动时就已经开始工作了。我使用PHPSDK创建了一个事件。然而,将这两者结合起来才是问题的根源。理论上,当我想将事件发送到facebook时,我使用网站数据库上的事件id收集信息,将其插入变量,然后在创建facebook事件后通过数组将这些变量发送到api调用。但是,我得到了一个“O

我已经为此奋斗了一天左右,但我无法找出错误所在。 我正在为一个朋友建立一个网站,他每月举办一到两次大型聚会。我希望他能够在网站上创建一个事件,并使用FBPHPSDKAPI将此事件发送到facebook

我在网站上创建活动时就已经开始工作了。我使用PHPSDK创建了一个事件。然而,将这两者结合起来才是问题的根源。理论上,当我想将事件发送到facebook时,我使用网站数据库上的事件id收集信息,将其插入变量,然后在创建facebook事件后通过数组将这些变量发送到api调用。但是,我得到了一个
“OAutheException:(#100)无效参数”
错误

考虑到连接到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";
} 
此时,事件创建失败,出现错误: “OAutheException:(#100)参数事件信息开始时间必须是有效时间”

请注意,只有通过变量插入时间时才会发生这种情况。一旦我将变量替换为文本日期
2015-05-19T23:30:00+0200
我将使用

$FBcreateEventStartTime = new DateTime($createEventStartTime); 
$FBcreateEventStartTime -> format(DateTime::ISO8601);
对于endtime和我在innitial代码中显示的数组,我当然已经替换了它们

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


你的时间记法正确吗?我在尝试以“hh:mm:ss”格式发送开始时间时收到了相同的错误,必须添加日期和时区偏移(这也是必需的): YYYY-mm-ddThh:mm:ss+zz


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

Hi@besimple。首先,很抱歉回复太晚。我一直生病,这使我无法处理编程问题。我会试试你的建议,一有答复就给你答复。现在先谢谢你。嗨,贝斯姆普。我已经这样做了:[code]$FBcreateEventStartTime=new DateTime($createEventStartTime)$FBcreateEventStartTime->格式(日期时间::ISO8601);echo$FBcreateEventStartTime将显示2014-03-19T01:30:00+0100,在数组中我发现:[开始时间]=>DateTime对象([日期]=>2014-03-19 01:30:00[时区类型]=>3[时区]=>Europe/Berlin)[/code]。我现在得到错误:OAutheException:(#100)Param event_info-start_time必须是有效时间。我觉得一切都设置正确。有什么想法吗?对
$createEvent
做一个简单的
var_dump
,并向我们展示结果。(以可读的格式。)@cbroe:我已经用$createEvent和其他一些东西编辑了我的文章。看起来你正在直接将DateTime对象放入参数数组中–不确定SDK在发布时是否按预期处理这些对象。使用包含正确格式的日期的字符串值作为开始时间和结束时间。@CBroe:在回显
$FBcreateEventStartTime
时,该值实际上与我测试的纯文本日期相同,即
2015-05-19T23:30:00+0200
'start_time' => $createEventStartTime,
'end_time' => $createEventEndTime,
'start_time' => $FBcreateEventStartTime,
'end_time' => $FBcreateEventEndTime,