2013-09-28 24 views
1

我一直在爭取這一天左右,我無法找出錯誤在哪裏。 我正在爲一個朋友建造一個網站,每個月都會有一兩次這樣的大派對。我希望他能夠在網站上創建活動並使用fb php sdk api將此活動發送到Facebook。OAuthException:(#100)無效的參數

我得到的東西儘可能在網站上創建事件本身。我創建了一個使用php sdk工作的事件。然而,將這兩者結合起來就是麻煩的開始。理論上,當我想將事件發送到Facebook時,我使用網站數據庫上的事件ID來收集信息,將其插入到變量中,然後在創建Facebook事件後通過數組將這些變量發送到api調用。但是我得到了一個" OAuthException: (#100) Invalid parameter "錯誤。

也要考慮到conecting到FB和獲得存取權限令牌是正常工作,我retreiving從這個數據庫中的正確的信息是我的代碼:

// - 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"; 
} 

之前我發信息給數組我回應一切,所以我知道我有正確的數據beeing發送到正確的地方,似乎都匹配。當我使用文本數據而不是php變量填充數組時,例如"name" => "testevent"而不是"name" => $testevent,事件被創建。只要我使用「name」=> $ 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替代變量的情況下獲得的創建regulaarly我將使用

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

具有相同的結束時間,我已經在innitial代碼所示數組中的日期,以ISO8601我當然有通過

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

沒人能幫忙嗎? – vasco

+0

對'$ createEvent'做一個簡單的'var_dump',並顯示結果。 (以可讀的格式)。 – CBroe

+0

@cbroe:我用$ createEvent的print_r編輯了我的帖子,還有一些其他的東西。 – vasco

回答

0

更換

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

你有右符號次?我嘗試以格式'hh:mm:ss'發送start_time時收到同樣的錯誤 - 必須添加日期和時區偏移量(此項也是必需的): YYYY-mm-ddThh:mm:ss + zz

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

+0

Hi @besimple。首先對於遲到的回覆感到抱歉。我生病了,這使我無法編程。我會盡快給你提供建議,並儘快回覆你。現在先謝謝你。 – vasco

+0

Hi @besimple。我已經這樣做了: [code] $ FBcreateEventStartTime = new DateTime($ createEventStartTime); $ FBcreateEventStartTime - > format(DateTime :: ISO8601); 回波$ FBcreateEventStartTime將顯示2014-03-19T01:30:00 + 0100和陣列中的我發現這個: [START_TIME] => DateTime對象 ( [日期] => 2014年3月19日01: 30:00 [timezone_type] => 3 [timezone] => Europe/Berlin ) [/ code]。 我現在得到錯誤: OAuthException:(#100)參數event_info-start_time必須是有效的時間。它接縫給我,一切都已正確設置。有任何想法嗎? – vasco

0

如果通過使用文本數據,而不是你所產生的變量成功創建您的活動,你也許想路過FB,其值是一個數組鍵的一部分返回的變量?類似於您的成功事件ID不是$ eventCreate,而是$ eventCreate ['id']。也許嘗試逐個刪除參數中的一個來確定有問題的參數,然後將其轉儲給我們,以便我們可以確定它的問題?