ccc

Mostrando entradas con la etiqueta API Facebook. Mostrar todas las entradas
Mostrando entradas con la etiqueta API Facebook. Mostrar todas las entradas

Como conseguir un Access Token de Instagram

Tienes que enlazar el developers de tu Facebook con el de tu Instagram:

https://docs.oceanwp.org/article/487-how-to-get-instagram-access-token

Teniendo ya una access token podemos obtener el Id del usuario en Instagram y su username:
https://graph.instagram.com/me?fields=id,username&access_token=IGQVJXOGlLTXXXXX
Obtener todos los post publicados:
https://graph.instagram.com/me/media?fields=id,caption,media_type,media_url,username,timestamp&access_token=IGQVJXOGlLTXXXX
A partir del id del post obtener la foto y demás campos:
https://graph.instagram.com/17968599999937219?fields=id,media_type,media_url,username,timestamp&access_token=IGQVJXOGlLZXXXX
Más información en: https://developers.facebook.com/docs/instagram-basic-display-api/getting-started

Ejemplo general:
$json  = file_get_contents("https://graph.instagram.com/me?fields=id,username,media_count&access_token=".IG_ACCESS_TOKEN);
$arr = json_decode($json);
echo "<br>ID: ".$arr->id;
echo "<br>Username: ".$arr->username;
echo "<br>media_count: ".$arr->media_count;
echo "<hr>";
$json = file_get_contents("https://graph.instagram.com/me/media?fields=id,caption,media_type,media_url,username,timestamp,permalink&access_token=".IG_ACCESS_TOKEN);
$arr = json_decode($json);

foreach ($arr->data as $clave=>$valor) {
echo("<br><b>id:</b> ".$arr->data[$clave]->id);
echo("<br><b>caption:</b> ".$arr->data[$clave]->caption);
echo("<br><b>media_type:</b> ".$arr->data[$clave]->media_type);
echo("<br><b>media_url:</b> ".$arr->data[$clave]->media_url);
echo("<br><b>username:</b> ".$arr->data[$clave]->username);
echo("<br><b>timestamp: </b>".$arr->data[$clave]->timestamp);
echo("<br><b>permalink: </b>".$arr->data[$clave]->permalink);
echo "<hr>";

}

// comentarios
// Id de un Post: 18016037245432610
// Esto solo funciona para las cuentas empresariales de Instagram
$jpon = file_get_contents("https://graph.facebook.com/v15.0/18016037245432610?fields=timestamp&access_token=".IG_ACCESS_TOKEN);

API Facebook: Obtener información de una página de Facebook

1. Crear la App. Crear su APP_ID y Secret_ID.
2. Entrar en https://developers.facebook.com/tools/explorer/{{APP_ID}}/
3. Marcar a la izquierda los permisos que vayas a necesitar.
4. Generar un Access Token
5. En la url de GET por ejemplo:
nombredelapagina?access_token=xxxx&fields=id,global_brand_page_name,category,username,new_like_count,posts{id}
Escrito directamente en un navegador sería:
https://graph.facebook.com/nombredelapagina?access_token=xxxx&fields=id,global_brand_page_name,category,username,new_like_count,posts{id}

6. Ir añadiendo/quitando en el menú de la derecha los campos que quieras mostrar.

API Facebook: Login con Facebook

1. Crear en https://developers.facebook.com/ una APP.
2. De esta manera ya obtienes el ID de la APP. 3. En la APP que has creado "Iniciar sesión con el SDK de JavaScript" y poner el dominio desde el cual se va a llamar.
4. El código completo en https://developers.facebook.com/docs/facebook-login/web

Compartir url en redes sociales

La forma más sencilla:
https://www.addtoany.com/buttons/for/website

Generar el código y ponerlo en tu web (en el caso de Linkedin hace caso omiso a las metas de og, simplemente coge la primera imagen que encuentra)

Añadir el chat de messenger de Facebook a tu propia web

Debes tener previamente creada una página en Facebook, entras con tu cuenta:
https://www.facebook.com/mipaginaweb/

Y le das a configuración y en el menú de la izquierda a "Mensajes":
https://www.facebook.com/eldespotricadorcinefilo/settings/?tab=messaging&ref=page_edit

Elegir "Añade Messenger a tu sitio web" y seguir todos los pasos.

Al final te genera un código que el que tienes que poner en tu web:
<!-- Load Facebook SDK for JavaScript -->
      <div id="fb-root"></div>
      <script>
        window.fbAsyncInit = function() {
          FB.init({
            xfbml            : true,
            version          : 'v7.0'
          });
        };

        (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = 'https://connect.facebook.net/es_ES/sdk/xfbml.customerchat.js';
        fjs.parentNode.insertBefore(js, fjs);
      }(document, 'script', 'facebook-jssdk'));</script>

      <!-- Your customer chat code -->
      <div class="fb-customerchat"
        attribution=setup_tool
        page_id="166xxxx97466"
  logged_in_greeting="Hola, ¿en qué puedo ayudarte?"
  logged_out_greeting="Hola, ¿en qué puedo ayudarte?">
      </div>
 
De esta manera cualquier persona con cuenta en Facebook podrá escribir mensajes en ese chat y te llegarán a tu bandeja de entrada de tu web en Facebook.

Facebook, Twitter y Linkedin: Metas para compartir

<meta property="og:type" content="website"/>
  <meta property='og:url' content='https://www.youtube.com/watch?v=Kvj_qEPgPps' />
  <meta property="og:title" content="Atrápame si puedes (2002) de Steven Spielberg"/>
  <meta property="og:description" content="Atrápame si puedes (2002) de Steven Spielberg">
  <meta property="og:image" content="https://www.midominio.com/images/rrss/facebook.jpg">
  <meta name="twitter:card" content="summary"/>
  <meta name="twitter:url" content="https://www.youtube.com/watch?v=Kvj_qEPgPps"/>
  <meta name="twitter:title" content="Atrápame si puedes (2002) de Steven Spielberg"/>
  <meta name="twitter:description" content="Atrápame si puedes (2002) de Steven Spielberg"/>
  <meta name="twitter:image" content="https://i2.ytimg.com/vi/Kvj_qEPgPps/default.jpg"/>

Información de Twitter:
https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/summary

Para Linkedin los metas son los mismos que Facebook pero es aconsejable también añadir:
<meta property="og:image:secure_url" content="https://www.midominio.com/images/rrss/linkedin.jpg">

Para chequearlo en FB:
https://developers.facebook.com/tools/debug/

Para chequearlo en Twitter:
https://cards-dev.twitter.com/validator

Para chequearlo en Linkedin:
https://www.linkedin.com/post-inspector/inspect/

Si en Twitter te diera el error de:
Fetching the page failed because it's denied by robots.txt

Para solucionarlo hay que poner en nuestro robots.txt:
User-agent: Twitterbot
 allow:


Más información en: https://www.flimper.com/blog/es/que-es-open-graph-y-como-se-hace

Ejemplo de compartir vídeo de YouTube:
<a href="https://www.facebook.com/sharer/sharer.php?u=https://www.youtube.com/watch?v=Y8UFpmqYTMY">xxx</a>

<a href="https://twitter.com/intent/tweet?url=https://www.youtube.com/watch?v=Y8UFpmqYTMY&text=prueba">xxx</a>

<a href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.youtube.com/embed/Y8UFpmqYTMY">xxx</a>

<a href="https://api.whatsapp.com/send?text=https://www.youtube.com/watch?v=Y8UFpmqYTMY">xxx</a>

Ejemplo de compartir imagen:
<a href="https://www.facebook.com/sharer/sharer.php?u=https://www.midominio.com/imagenes/slide20191106105324.jpg">xxx</a>

<a href="https://twitter.com/intent/tweet?url=https://www.midominio.com/twitter.php?id=3">xxx</a>

En twitter.php debe tener los metas de twitter:
<?php
require("inc_config.php");
$sql = "SELECT * FROM mitabla where id = ".$id;
$db->query($sql);
$db->next_record();

$imagenShare = $base."imagenes/noticias/".$db->Record["imagen"];
$titleShare = $db->Record["titular"];
?>
<!DOCTYPE html>
<html>
<head>
  <meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="@loquesea" />
<meta name="twitter:title" content="<?=$titleShare;?>" />
<meta name="twitter:description" content="<?=$titleShare;?>" />
<meta name="twitter:image" content="<?=$imagenShare;?>" />
  <meta property="og:image:secure_url" content="<?=$imagenShare;?>">
</head>
<body>
<img src="<?=$imagenShare;?>">
</body>
</html>

<a href="https://www.linkedin.com/sharing/share-offsite/?url=https://www.midominio.com/imagenes/slide20191105125558.jpg">xxx</a>

<a href="https://api.whatsapp.com/send?text=https://www.midominio.com/imagenes/slide20191105125558.jpg">xxx</a>

Añadir "Me Gusta" de Facebook y Twitter a cualquier página de tu web

<div style="background-color: #000;border: 1px solid #fff;padding: 10px;width:50%;margin:0 auto;">
<div>
<?php
$linkFacebook = $_SERVER["REQUEST_URI"];
$urlTotalTW = $_SERVER["SERVER_NAME"]."/".$_SERVER["PHP_SELF"];
?>
<div class="fb-like" data-href="<?=$linkFacebook;?>"
data-width="300" data-layout="standard" data-action="like"
data-show-faces="true" data-share="true"></div>
<div>
<a class="twitter-share-button" href="<?=$urlTotalTW;?>" data-size="large"> Tweet</a>
</div>

<!-- TW -->
<a href="https://twitter.com/despoCinefilo" class="twitter-follow-button" data-show-count="false" data-lang="es">@despoCinefilo</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
</div>
</div>

Mostrar en tu web todos los likes de tu página en Facebook mostrando también la foto de los usuarios

<iframe class="fgroup" src="http://www.facebook.com/plugins/likebox.php?href=https://www.facebook.com/eldespotricadorcinefilo&amp;width=450&amp;height=330&amp;colorscheme=light&amp;show_faces=true&amp;header=false&amp;stream=false&amp;show_border=false" scrolling="no" frameborder="0" style="border:2px solid #EEEEEE; overflow:hidden; width:450px; height:330px;" allowTransparency="true"></iframe>

API Facebook: Obtener datos al loguearte y obtener la fotografía grande del usuario

<html>
<body>
<button class='facebook-btn' onclick="ingresar();"><i class="fa fa-facebook"></i>Ingresar con Facebook</button>
</body>
<script src="//code.jquery.com/jquery-1.12.4.min.js"></script>
<script>
    window.fbAsyncInit = function () {
        FB.init({
            appId: 'xxxx',
            xfbml: true,
            cookie : true,
            version: 'v2.7'
        });
    };
    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) {
            return;
        }
        js = d.createElement(s);
        js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

    var idFB = 0;
    function ingresar() {
        FB.login(function (response) {
            FB.getLoginStatus(function (response) {
                if (response.status == 'connected') {
                    FB.api('/me',{
                        fields: 'first_name,last_name,age_range,link,gender,locale,picture,timezone,updated_time,verified,email,cover'
                    }, function (response) {
                        idFB = response.id;
                        FB.api(
                            "/"+idFB+"/picture?height=960",
                            function (response) {
                                console.log(idFB);
                                console.log(response);
                                $.ajax({
                                    type: 'POST',
                                    url: './guardarFoto.php',
                                    data: {
                                        fotoFB: response.data.url
                                    },
                                    dataType: 'jsonp',
                                    complete: function () {
                                    }
                               })
                            }
                        );
                    });

                } else if (response.status == 'not_authorized') {
                    alert('Debes autorizar la app!');
                } else {
                    alert('Debes ingresar a tu cuenta de Facebook!');
                }
            });
        }, {scope: 'public_profile, email',return_scopes: true});
    }
</script>

En guardarFoto.php:
<?php
$img = './la_foto.jpg';
file_put_contents($img, file_get_contents($_POST["fotoFB"]));
?>

API Facebook: Obtener todos los datos de un usuario

Registrar una APP en https://developers.facebook.com/ para obtener las claves

<!DOCTYPE html>
<html>
<head>
  <title>Facebook Login JavaScript Example</title>
  <meta charset="UTF-8">
  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
</head>
<body style="background-color:#2C2961;color:#FFF;margin:0 auto;width:800px;">
  <script>
  // This is called with the results from from FB.getLoginStatus().
  function statusChangeCallback(response) {
    console.log('statusChangeCallback');
    console.log(response);
    // The response object is returned with a status field that lets the
    // app know the current login status of the person.
    // Full docs on the response object can be found in the documentation
    // for FB.getLoginStatus().
    if (response.status === 'connected') {
      // Logged into your app and Facebook.
      testAPI();
    } else if (response.status === 'not_authorized') {
      // The person is logged into Facebook, but not your app.
      document.getElementById('status').innerHTML = 'Please log ' +
      'into this app.';
    } else {
      // The person is not logged into Facebook, so we're not sure if
      // they are logged into this app or not.
      document.getElementById('status').innerHTML = 'Por favor, identifícate con tu cuenta de Facebook para que podamos obtener tus datos personales, tu cumpleaños, tu país y tu ciudad para poder almacenarlos en nuestra base de datos';
    }
  }

  // This function is called when someone finishes with the Login
  // Button.  See the onlogin handler attached to it in the sample
  // code below.
  function checkLoginState() {
    FB.getLoginStatus(function(response) {
      statusChangeCallback(response);
    });
  }

  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'xxx',
    cookie     : true,  // enable cookies to allow the server to access
                        // the session
    xfbml      : true,  // parse social plugins on this page
    version    : 'v2.2' // use version 2.2
  });

  // Now that we've initialized the JavaScript SDK, we call
  // FB.getLoginStatus().  This function gets the state of the
  // person visiting this page and can return one of three states to
  // the callback you provide.  They can be:
  //
  // 1. Logged into your app ('connected')
  // 2. Logged into Facebook, but not your app ('not_authorized')
  // 3. Not logged into Facebook and can't tell if they are logged into
  //    your app or not.
  //
  // These three cases are handled in the callback function.

  FB.getLoginStatus(function(response) {
    statusChangeCallback(response);
  });

};

  // Load the SDK asynchronously
  (function(d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) return;
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));

  function show_props(obj, objName) {
    var result = "";
    for (var i in obj) {
      result += objName + "." + i + " = " + obj[i] + "<br>";
    }
    return result;
  }


  function testAPI() {
    // console.log('Welcome!  Fetching your information.... ');
    FB.api('/me?fields=id,name,email,first_name,last_name,picture,birthday,location', function(response) {
      console.log(response);


    arr = response.location.name.split(" ");
    arr[0] = arr[0].replace(",","");
    arr[0] = arr[0].replace(" ","");
    arr[1] = arr[1].replace(" ","");

    // alert(arr[0]);
    // alert(arr[1]);
    var otra_ciudad = arr[0];

    var cp = "";
    var id_pais = 0;
   
    if (arr[1] == "Spain") {

      cp = "28033";
      id_pais = 73;
    }
   
    arr = response.birthday.split("/");
    var fecha_nacimiento = arr[1]+"/"+arr[0]+"/"+arr[2];


    var azar = Math.floor((Math.random() * 999) + 1);
    var username = "FB_"+response.first_name.substr(0,4)+"_"+response.last_name.substr(0,4)+"_"+azar;
   


    <?php
    // Generar contraseña aleatoria
    $cadena = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
    $longitudCadena = strlen($cadena);
    $pass = "";
    $longitudPW = 10;
   
    for($i=1 ; $i<=$longitudPW ; $i++){
     $pos=rand(0,$longitudCadena-1);
     $pass .= substr($cadena,$pos,1);
   }
   ?>
   var html = '';
   html += '<form id="form_reg_linkedin" name="form_reg_linkedin" action="<?=$rutaReg;?>" method="POST">';
   html += '<input type="hidden" name="nombre_completo" value="'+response.first_name+" "+response.last_name+'">';
   html += '<input type="hidden" name="email" value="'+response.email+'">';
   html += '<input type="hidden" name="esRegLinkedin" value="1">';
   html += '<input type="hidden" name="id_pais" value="'+id_pais+'">';
   html += '<input type="hidden" name="otra_ciudad" value="'+otra_ciudad+'">';
   html += '<input type="hidden" name="cp" value="'+cp+'">';
   html += '<input type="hidden" name="fecha_nacimiento" value="'+fecha_nacimiento+'">';
   html += '<input type="hidden" name="nif" value="2222">';
   html += '<input type="hidden" name="username" value="'+username+'">';
   html += '<input type="hidden" name="pw1" value="<?=$pass;?>">';


   html += '</form>';

$("#divHTML").html(html);


$(function() {
  $("#form_reg_linkedin").submit();
});
});
}
</script>

<fb:login-button scope="public_profile,email,user_birthday,user_location,user_website,user_friends" onlogin="checkLoginState();">
</fb:login-button>


<div id="status">
</div>

<div id="divHTML" name="divHTML" style="margin-top:20px;"></div>

</body>
</html>

API Facebook: Operaciones

CREAR CUENTA Y SU CORRESPONDIENTE WEB

- Crear cuenta en www.facebook.com usando redessociales@nombredominio.

- Crear una página para esa cuenta: le das a la ruedita (arriba a la izquierda) y seleccionas "Crear página" (se llamará "Web nombredominio", por ejemplo "Web miempresa.es") (rellenar todos los datos: son 4 pantallas rellenando datos de la empresa)

-----------------------

HACER QUE TODO LO QUE SE PUBLIQUE EN BLOGGER SE PUBLIQUE EN FACEBOOK
- Iniciar sesión con Facebook.
- Entrar en https://apps.facebook.com/rssgraffiti/, das permiso a esa aplicación para poder publicar en tu facebook. Una vez dados los permisos le das a Add New Publishing Plan (le pones el nombre de tu blog: por ejemplo Mi Empresa)
- Le das a SOURCES -> add New y escribes por ejemplo miempresa.blogspot.com/atom.xml
- En las opciones de Basic y Avanzado puedes configurar algunas cosas (cuántos post permites al día, cada cuánto tiempo busca nuevos post, si quieres publicar el titular más el texto, etc).
- Hacer que las entradas de blogger se publiquen en nuestra página y no en nuestro muro:
- Target -> Add New
- Del combo eliges la página de FB en la que quieres publicar (por ejemplo pruebas MiEmpresa)
- Cuando salves todo pulsas el botón OFF y se podrán a ON y ya publicará
Más información en:

 http://www.terrenoblogger.co/2013/04/Publicar-Automaticamente-las-Entradas-en-Facebook-Twitter-y-Google-plus.html

-------------------------------

FACEBOOK ME GUSTA
a) Logueate en Facebook
b) Entra en https://developers.facebook.com/docs/reference/plugins/like/
c) Ahí especificas la web que quieres poner (Ej: www.miempresa.es), el tamaño del botón, el formato y otras características.
d) das a Get Code
--------------------------------------

API Facebook: Loguearse con la cuenta de Facebook

En https://developers.facebook.com crear aplicación y obtener:
ID de la aplicación
App Secret

Configuration:
a) Display Name: Loguearse en mi web
b) Namespace: loguerarse_en_mi_web
c) App Domains: www.miweb.com
d) URL del sitio: http://www.miweb.com
e) Mobile Site URL: http://www.miweb.com

Status&Review:
Do you want to make this app and all its live features available to the general public?: YES

-------------------------------------
Ejemplo:
https://github.com/leandrosiegar/repositorio/tree/master/facebook