Facebook API de subida de fotos desde la URL

Tengo un sitio web con galería de fotos y me gustaría subir cada foto (uno por uno) a mi facebook página (no de la pared). Me las arreglé para enviar un mensaje, pero ahora quiero subir una foto a una Página de FB de la Pared mediante la carga de una imagen existente desde el servidor de direcciones URL específicas (no quiero subir de nuevo a nivel local). Es esto posible?

OriginalEl autor ilija veselica | 2012-07-03

4 respuestas

  1. 12

    Sí, usted puede hacerlo

    Ejemplo
    En Graph Api Explorer

    Hacer la llamada post, conjunto de url para https://graph.facebook.com/me/photos,

    Agregar campo con la tecla message y valor “cualquier mensaje personalizado”

    Añadir otro campo con la tecla url y valor https://appharbor.com/assets/images/stackoverflow-logo.png

    haga clic en enviar

    Casi 🙂 las Fotos se suben, pero a mi muro personal. Cómo puedo subir una Pared en mi facebook (página de ilija.veselica.la fotografía)? Gracias
    Me sale un error: “mensaje”: “(#120) no Válido album id
    Esta es la respuesta correcta. Las fotos se cargan en su pared, porque /me/fotos en la dirección url del extremo. Si quieres una página específica, reemplazar /me/ con /pageId/
    Estupendo.. Funciona como un encanto. Gracias!!

    OriginalEl autor mtariq

  2. 1

    Usted necesita saber el álbum id y hacer la llamada POST:

    https://graph.facebook.com/albumid/photos?access_token=$access_token
    

    Encontrará el álbum de identificación de entrar en el álbum y mirando a la URL. Será algo así como https://www.facebook.com/media/set/?set=a.XXXXXXXXXXX.YYYY.ZZZZZZZZZZ&type=3

    Su álbum el id de la XXXX.

    Este es el álbum: facebook.com/media/set/…, por Lo tanto, el álbum id es 254503314567659. ¿Significa esto que estoy llamando a la graph.facebook.com/254503314567659/photos? Procedí access_token, el mensaje y la dirección url de parámetros y sigue el mismo error
    podemos ver el código?
    Creo que es más fácil tratar de hacer primero aquí: developers.facebook.com/tools/…
    He cambiado de LLEGAR a la POST y añadido 2 nuevos parámetros: access_token y la url.
    Lo consiguió! Yo estaba usando mal access_token todo el tiempo (yo usé el de mi cuenta personal). Con el fin de obtener acceso a la página token me llamó: graph.facebook.com/…, y se listan las fichas de todas mis páginas. XY = a mi cuenta personal access_token

    OriginalEl autor Martinson

  3. 1

    esto es lo que yo uso:

    $facebook = new Facebook(array(
        'appId' => FACEBOOK_APP_ID,
        'secret' => FACEBOOK_SECRET,
        'cookie' => true,
        'fileUpload' => true,
    ));
    
    $user = $facebook->getUser(); //Get the UID of the connected user, or 0 if the Facebook user is not connected.
    
    $facebook->setFileUploadSupport(true);
    
    if($user == 0) {
        //If the user is not connected to your application, redirect the user to authentication page
        /**
         * Get a Login URL for use with redirects. By default, full page redirect is
         * assumed. If you are using the generated URL with a window.open() call in
         * JavaScript, you can pass in display=popup as part of the $params.
         * 
         * The parameters:
         * - redirect_uri: the url to go to after a successful login
         * - scope: comma separated list of requested extended perms
         */
    
        $login_url = $facebook->getLoginUrl($params = array('redirect_uri' => REDIRECT_URI,'scope' => PERMISSIONS_REQUIRED));
    
        echo ("<script> top.location.href='".$login_url."'</script>");
    
    } else {
        //if the user is already connected, then fetch access_token and user's information or show some content to logged in user.
        try
        {
            $access_token = $facebook->getAccessToken(); //Gives you current user's access_token
    
            $user = $facebook->api('/me'); //Gets User's information based on permissions the user has granted to your application.
    
        } catch(FacebookApiException $e){
            $results = $e->getResult();
            //Print results if you want to debug.
        }
    
    }
    
    $img = './upload/'.$image_path;
        $args = array(
           'message' => 'Some Message',
            'access_token'=>urlencode($access_token),
        );
        $args[basename($img)] = '@'.realpath($img);
    
        $ch = curl_init();
        $url = 'https://graph.facebook.com/me/photos';
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
        $data = curl_exec($ch);
        $response = json_decode($data,true);
    
    Desde la publicación de código del lado del servidor aquí, estoy asumiendo que “ellos” es en realidad “yo”. En ese caso, es totalmente inadecuada a la realidad enlace a su sitio en esta forma, porque no es remotamente relacionados a contestar a esta pregunta. Pero en lugar de la bandera esto como spam, voy a editar esta respuesta apropiada.

    OriginalEl autor tytyguy

  4. 0
                $config = array('appId' => $config['App_ID'],'secret' => $config['App_Secret']);
    
                $facebook = new Facebook($config);
    
                //sets our access token as the access token when we call 
                //something using the SDK, which we are going to do now.
                $facebook->setAccessToken($access_token); 
    
                $page_id = "XXXXXXXXXXXXXXX";
    
                $page_access_token = "";
    
                $result = $facebook->api("/me/accounts");
    
                foreach($result["data"] as $page) {
                    if($page["id"] == $page_id) {
                        $page_access_token = $page["access_token"];
                        break;
                    }
                }
    
                $facebook->setFileUploadSupport(true);
                $photo = "http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png";
                $args = array(
                    'access_token'  => $page_access_token,
                    'message'       => "message here",
                    'url' => $photo,
                );
                $post = $facebook->api("/$page_id/photos","post",$args);
    

    OriginalEl autor user3608796

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *