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

Symfony PHP Discussion :

changer cover facebook [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 78
    Par défaut changer cover facebook
    Bonjour à tous

    j'essaye actuelement de réaliser une dynamik cover sur une page facebook donc je voudrais tous les x minutes envoyer une photo sur facebook et la definir comme image de couverture.

    Pour cela j'utilise le sdk php fourni par facebook. D'apres ce que j'ai compris il faut:
    - creer une apps facebook et recuperer son ID ainsi que son SECRET
    - on recupere l'ID de la page visée (onglet parametres...)
    - Puis , on upload une image sur la page à l'aide de l'api
    - Enfin, on toujours avec l'api on doit definir cette image comme cover.

    J'arrive bien à uploader mon image dans ma page facebook seulement , je ne parviens pas à la definir comme cover.

    Voici mon code :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?php
    include('src/facebook.php');
     
    $app_id='my_app_id';
    $app_secret='my_app_secret';
    $facebook = new Facebook(array(
      'appId' => $app_id,
      'secret' => $app_secret
    ));
    $pageID="my_page_id";
     
    // enable file upload support
    $facebook->setFileUploadSupport(true);
    $token = $facebook->getAccessToken();
     
    //var_dump($token);die();
     
    // set the page access token
    $facebook->setAccessToken( $acessToken);
     
    $user = $facebook->getUser();
     
    if (empty($user)) {
        header("Location: ". $facebook->getLoginUrl(array(
            'req_perms' =>  'publish_action, user_photos '
        )));
        exit();
    }
     
    // upload a photo to facebook, will return id of uploaded photo
    $photo_uploaded = $facebook->api( $pageID . "/photos", "POST", array(
        'source' => '@' . 'images.jpg',
        'access_token' => $accessToken,
        'no_story' => true // suppress automatic image upload story, optional
      ) );
     
     
    // set uploaded photo as cover image, will return true on success
    $cover = $facebook->api( 'my_page_id', "POST", array(
        'cover' => $photo_uploaded['id'],
        'offset_x' => 0, // optional
        'access_token' => $accessToken,
        'offset_y' => 0, // optional
        'scope'=>'publish_action, user_photos',
        'no_feed_story' => true // suppress automatic cover image story, optional
      ) );
     
    var_dump($photo_uploaded['id']); echo'<br>';
     
    var_dump($cover);  die();
     
    ?>
    Malgré mes nombreuses recherches depuis deux jours je ne trouve pas de solution, si quelqu'un à une idée...

    Merci d'avance

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 78
    Par défaut solution
    Bonjour à tous,

    J'ai fini par trouver la solution à mon problème !

    Je vous expose ma méthode j'espère que ca pourra servir.

    pour rappel on creer une page et on modifie la cover de cette page, pas celle du compte facebook

    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
     
    <?php
        include('src/facebook.php');//inclusion class sdk facebook
        include('myImage.php');// fichier ou je génère un image 
     
        $fb_config = array(
                'appId'  => 'xxxxxxxxxxxx',  //id de mon app facebook recup depuis dashboard de l'espace developpeur
                'secret' => 'xxxxxxxxxxx',  //secret de mon app facebook recup depuis dashboard de l'espace developpeur
        );
     
        $facebook = new Facebook($fb_config); 
        $facebook->setFileUploadSupport(true);
     
        //vous pouvez utiliser graph api explorer pour recuperer l'access token  : https://developers.facebook.com/tools/explorer/
        $accessToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
        $id_page_fb = "xxxxxxxxxxxxxxxxxxxxx" //recupéré depuis ma page fb, onglet parametres / infos de ma page
     
        $result = $facebook->publish('cover', '$id_page_fb', array('access_token' => $accessToken, 'url' => 'http://www.mon-serveur.com/facebook/monimage.png')); //url =chemin vers mon image
       // attention parfois la photo n'est pas de qualité suffisante pour etre acceptée voir $result
         echo'<pre>';   
          var_dump($result);
        echo'</pre>';die();
     
    ?>
    Donc j'appel la fonction publish que j'ai rajouté dans la class facebook.php

    Voici le code de la methode:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
     
      public function publish($type, $page_facebook_id, $args)
      {
        try
        {
          if (!empty($args['access_token']))
          {
            switch ($type)
            {
              case 'avatar':
                $result = $this->api('/'.$page_facebook_id.'/picture', 'post', $args);
                break;
     
              case "cover":
                $args['published'] = false;//pour ne pas avoir "x a modifier la photo de son profil" sur son mur
                $photo = $this->api('/'.$page_facebook_id.'/photos', 'post', $args);
                //var_dump($photo);die();
                if ($photo['id'])
                {
                  $args = array(
                    'access_token' => $args['access_token'],
                    'cover' => $photo['id'],
                    'no_feed_story' => true
                  );
     
                  $this->api('/'.$page_facebook_id, 'post', $args);
                }
                break;
              case 'photo':
                $photo = $this->api('/'.$page_facebook_id.'/photos', 'post', $args);
                break;
              case 'video':
                $photo = $this->api('/'.$page_facebook_id.'/feed', 'post', $args);
                break;
              case 'post':
                $photo = $this->api('/'.$page_facebook_id.'/feed', 'post', $args);
                break;
              case 'offer':
                $photo = $this->api('/'.$page_facebook_id.'/offers ', 'post', $args);
                break;
            }
            return array('status' => 1, 'result' => $photo);
          } else {
            return array('status' => 0, 'result' => 'access_token empty'); 
          }
        } catch (FacebookApiException $e) {
          return array('status' => 0, 'result' => $e); 
        }
    Voila, cette solution fonctionne bien chez moi , elle me permet d'afficher un decompte d'heures sur une cover facebook,

    Si questions ou remarques sur mon code n'hésitez pas.

    @ bientot

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

Discussions similaires

  1. Comment changer le fond d'un background-cover
    Par dhillig dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/12/2014, 20h49
  2. Changer l'aspect de mon compte facebook
    Par quaresma dans le forum Facebook
    Réponses: 0
    Dernier message: 31/01/2012, 01h39
  3. Réponses: 2
    Dernier message: 26/06/2002, 13h16
  4. changer de repertoire et situer
    Par chateau dans le forum C
    Réponses: 4
    Dernier message: 24/06/2002, 11h27
  5. changer l'adresse d'un fichier...
    Par cava dans le forum C
    Réponses: 6
    Dernier message: 05/06/2002, 12h22

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