IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Facebook Discussion :

Code 290 Créér un événement dans Facebook


Sujet :

Facebook

  1. #1
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut Code 290 Créér un événement dans Facebook
    Bonjour,
    je débute dans l'API Graph de FB...
    j'ai réussi à créer une application dans Facebook,
    mais je galère avec le code d'erreur ci-dessous :
    OAuthException: (#290) Requires extended permission: create_event

    voici mon code :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    // essai de creation d'evenements !
    try
        {
           $creationevt = $facebook->api("/$currentUser/events", 'post', array(
    		'name' => "Mon anniversaire",
    		'start_time' => "2012-12-31",
    		'end_time' => "2012-12-31",
    		'description' => "Description ici",
    		'privacy_type' => "SECRET",
    		'location' => "Caen"
    		));
        }
    catch (FacebookApiException $e)
        {	?>
    		<p style="color:#F90029;"><strong>Erreur dans Facebook :</strong></p>
            <?php
    		// print_r($e);
    		echo $e;
        }
    ?>

    avec le code suivant, j'arrive à ce que le message soit publié sur le mur :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        <?php
        try
        {
            $publishStream = $facebook->api("/$currentUser/feed", 'post', array(
            'message' => 'test sur mon application',
            'link'    => 'http://monsite.fr/',
    		'picture' => 'http://monsitefr/monimage.jpg',
            'name'    => 'monsite',
            'description'=> 'monsite'
            ));
        }
        catch (FacebookApiException $e)
        {
            print_r($e);
        }
    	?>

    voici ce que j'ai mis dans l'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Default Activity Privacy: 	Aucun (valeur par défaut de l’utilisateur)
    User & Friend Permissions: user_about_me
    Extended Permissions: publish_stream	create_event
    Auth Token Parameter: URI Fragment (#access_token=...)
    j'avais essayé aussi ça : Auth Token Parameter:Query String (?code=...)
    mais c'est pareil...
    la doc est en anglais et je capte pas bien...
    Merci !

  2. #2
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    j'ai essayé d'indiquer un Access Token que j'ai trouvé sur le net :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    // [fonctions]
    function getToken(){
    	$content = file('token.txt');
    	return $content[0];
    }
    function curl_get_file_contents($url) {
    	$ch = curl_init($url);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    	curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
    	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
    	curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: graph.facebook.com'));
    	$json = curl_exec($ch);
    	curl_close($ch);
    	return $json;
    }
    function getError() {
    	$json = json_decode(curl_get_file_contents('https://graph.facebook.com/'.$app_id.'/feed?access_token='.getToken()));
    	if ($json->error) {
    		if ($json->error->type== "OAuthException") {
    			return false;
    		}else {
    			return true;
    		}
    	}
    }
    // [/fonctions]
    // [token] permet de récupérer le token valable 60 jours
    $tmp_token = getToken();
    if((empty($tmp_token) && !preg_match('/code=/', $_SERVER['REQUEST_URI'])) || (!getError($app_id))) {
    	$code = 'https://www.facebook.com/dialog/oauth?client_id='.
    		$app_id."&redirect_uri=".urlencode($callback_url).
    		'&scope=user_groups&state=lijecreative';
    	echo("<script> top.location.href='".$code."'</script>");
    }
    if((empty($tmp_token) && preg_match('/code=/', $_SERVER['REQUEST_URI'])) || (!getError($app_id))) {
    	$token_url = 'https://graph.facebook.com/oauth/access_token?client_id='.
    		$app_id."&redirect_uri=".urlencode($callback_url).
    		'&client_secret='.$app_secret.'&code='.$_REQUEST["code"];
     
    	$data = curl_get_file_contents($token_url);
    	parse_str($data, $params);
    	$token_60j = $params['access_token'];
    	$fp = fopen('token.txt','w');
    	fwrite($fp, $token_60j);
    	fclose($fp);
    }
    // [/token]

    et ensuite :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
     try
        {
    		$publishStream = $facebook->api("/$currentUser/events?access_token=getToken()", 'post', array(
    		'name' => "Mon anniversaire",
    		'start_time' => "2012-12-31",
    		'end_time' => "2012-12-31",
    		'description' => "Description ici",
    		'privacy' => "FRIENDS",
    		'location' => "Ma Ville"
    		));
        }
        catch (FacebookApiException $e)
        {	?>
    		<p style="color:#F90029;"><strong>Erreur dans Facebook :</strong></p>
            <?php
    		echo $e;
        }
     
    ?>

    j'ai aussi essayé de rajouter "user_events" dans les paramètres de l'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    User & Friend Permissions:user_about_me		user_events
    Extended Permissions:	publish_stream		create_event		rsvp_event
    user_events
    et toujours le code d'erreur :
    OAuthException: (#290) Requires extended permission: create_event
    si vous avez des idées je suis preneur !

  3. #3
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    j'ai essayé avec le code ci-dessous et là il m'a bien demandé l'autorisation, j'ai accepté et cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    $nom_affiche =			'Test de l\'auteur ici....';
    $date_vue =				'2012-12-31T13:45:00+0100'; // exemple avec 31 decembre 2012 a 13h45 !
    $designation_affiche =	'ici la désignation de l\'événement....etc ....etc ....etc ....etc ....etc ....etc ....etc ....etc ....';
    $lieu_affiche =			'L\'adresse du lieu ici etc...etc...etc...';
    $image =				'http://www.developpez.net/forums/image.php?u=324717';
    ?>
    <?php
     try
        {
    		$publishStream = $facebook->api("/$currentUser/events", 'post', array(
    		'method' => 'events.create',
    		'name' => $nom_affiche,
    		'start_time' => $date_vue,
    		'description' => $designation_affiche,
    		'privacy' => "SECRET",
    		'picture' => $image,
    		'location' => $lieu_affiche
    		));
        }
        catch (FacebookApiException $e)
        {	?>
    		<p style="color:#F90029;"><strong>Erreur dans Facebook :</strong></p>
            <?php
    		echo $e;
        }
    ?>
    quelques points encore à voir
    - l'image n'apparait pas dans l'événement Facebook !
    - je ne vois le numéro d'ID de l'événement

    Savez-vous comment récupérer ce numéro "ID" après la création de l'événement ? et pourquoi l'image n'est pas dans l'événement ?
    Merci !

  4. #4
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    j'ai réussi à récupérer l'iD !

    il suffit de récupérer l'id ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $publishStream = $facebook->api("/$currentUser/events", 'post', $data);
    et l'afficher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '$publishStream id : '.$publishStream['id'].'<br />';
    Code complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    $data = array(
    'name' => 'Essai de nom ici',
    'description' => 'Ici la description de l evenement',
    'location' => 'Caen ( 14000 )',
    'privacy' => 'OPEN', // OPEN, CLOSED, SECRET
    'start_time' => '2012-12-31T20:45:00+0100',
    'picture' => 'http://www.ao6-labs.eu/wp-content/uploads/2011/05/ao6labs.png');
    // $data['files'] = array('picture' => 'http://www.ao6-labs.eu/wp-content/uploads/2011/05/ao6labs.png');
    try
    	{
    		$publishStream = $facebook->api("/$currentUser/events", 'post', $data);
    	}
    catch (FacebookApiException $erreur_fb)
        {	?><p style="color:#F90029;"><strong>Erreur dans Facebook :</strong></p><?php	echo $erreur_fb;	}
    
    	if ($erreur_fb=='') 
    		{
    			echo '<br />'.'<br />'.' OK bien publi&eacute; ! ';
    			echo '$publishStream id : '.$publishStream['id'].'<br />';
    			echo '<a href="http://www.facebook.com/events/'.$publishStream['id'].'" target"_blank">Lien Evenement FB</a>';
    		}
    	else
    		{	echo '<br />'.'<br />'.' KO non publi&eacute; ! ';	}
    ?>
    il me reste plus qu' récupérer l'image mais bon c'est déjà pas mal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Générer un événement dans le code
    Par yannick29000 dans le forum Composants
    Réponses: 1
    Dernier message: 25/11/2011, 12h27
  2. Créer un contrôleur et son évènement dans le code behind
    Par ZeProgrammator dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/01/2010, 10h26
  3. Réponses: 10
    Dernier message: 20/02/2009, 11h25
  4. Modifier un événement dans le code
    Par HT dans le forum Langage
    Réponses: 6
    Dernier message: 20/06/2003, 09h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo