2013-09-28 2 views
1

Je me bats depuis un jour ou deux et je ne peux pas savoir où est l'erreur. Je construis un site web pour un ami qui organise cette grande fête une ou deux fois par mois. Je veux qu'il puisse créer un événement sur le site Web et envoyer cet événement à Facebook en utilisant le fb php sdk api. J'ai eu des choses fonctionnant aussi loin que la création de l'événement sur le site Web lui-même. J'ai créé un événement en utilisant le php sdk. Cependant, la combinaison de ces deux est là où le problème commence. Théoriquement, quand je veux envoyer l'événement à facebook, j'utilise l'identifiant de l'événement sur la base de données du site pour rassembler l'information, l'insérer dans des variables, puis envoyer ces variables via array à l'api. J'obtiens cependant une erreur " OAuthException: (#100) Invalid parameter ".OAuthException: (# 100) Paramètre invalide

Prenant en considération le fait que conecting à fb et obtenir l'accès Jeton fonctionne correctement et je retreiving les informations correctes à partir de la base de données ceci est mon code:

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

avant d'envoyer les informations au tableau Je fais écho à tout ce que je sais que j'ai les bonnes données envoyées à la bonne place et tout semble correspondre. Lorsque je remplis le tableau avec des données textuelles au lieu des variables php, par exemple "name" => "testevent" au lieu de "name" => $testevent, l'événement est créé. dès que j'utilise le "nom" => $ testevent, au lieu du "name" => "testevent", j'obtiens l'erreur.

J'ai déjà dévoré google et mangé la moitié de stacoverflow en vain. quelqu'un peut-il m'aider avec ceci?

Sincères salutations

selon la demande de @CBroe. J'ai un print_r de createEvent $:

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 
) 

c'est lorsque la création d'événements échoue maintenant avec une erreur: "OAuthException: (# 100) Param EVENT_INFO-start_time doit être un temps valide"

esprit Cela ne se produit que lorsque j'insère les heures via une variable. Une fois que je remplace les variables par une date de texte 2015-05-19T23:30:00+0200 l'événement get créé regulaarly je suis en train de convertir la date à ISO8601 en utilisant

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

avec le même pour endtime et dans le tableau que je l'ai montré dans le code innitial je bien sûr remplacé

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

par

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

personne ne peut vous aider? – vasco

+0

Faites un simple 'var_dump' de' $ createEvent', et montrez-nous le résultat. (Dans un format lisible.) – CBroe

+0

@cbroe: J'ai édité mon post avec un print_r de $ createEvent et quelques autres choses. – vasco

Répondre

0

avez-vous des fois en notation droite? J'ai reçu la même erreur en essayant d'envoyer start_time au format 'hh: mm: ss' - a dû ajouter le décalage de date et de fuseau horaire (celui-ci est également nécessaire): YYYY-mm-ddThh: mm: ss + zz

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

+0

Hi @besimple. Tout d'abord désolé pour la réponse tardive. J'ai été malade et cela m'a empêché de programmer les choses. Je vais essayer votre avis et vous répondre dès que vous avez une réponse. Pour l'instant merci d'avance. – vasco

+0

Bonjour @besimple. J'ai fait ceci: [code] $ FBcreateEventStartTime = new DateTime ($ createEventStartTime); $ FBcreateEventStartTime -> format (DateTime :: ISO8601); echo $ FBcreateEventStartTime montrera 2014-03-19T01: 30: 00 + 0100 et dans le tableau que je trouve ceci: [start_time] => DateTime objet ( [date] => 19/03/2014 01: 30:00 [timezone_type] => 3 [timezone] => Europe/Berlin ) [/ code]. Je reçois maintenant l'erreur: OAuthException: (# 100) Param event_info-start_time doit être une heure valide. il me semble que tout a été correctement configuré. Des idées? – vasco

0

Si votre événement est créé avec succès en utilisant des données de texte plutôt que les variables que vous avez généré, vous essayez peut-être passer une variable retournée par FB dont la valeur fait partie d'une clé de tableau? Semblable à la façon dont votre ID d'événement réussi n'est pas $ eventCreate, mais plutôt $ eventCreate ['id']. Peut-être essayer de supprimer un des paramètres un par un pour déterminer le problème, puis le vider pour nous afin que nous puissions déterminer le problème avec lui?

Questions connexes