Estoy usando Facebook SDK para publicar algunas publicaciones en el muro de prueba en mi propia página de Facebook. Lo que quiero es publicar en mi página de Facebook cada 8 horas usando el script PHP CRON y para eso tengo que pasar por alto la página de diálogo de inicio de sesión de Facebook. ¿Alguien sabe cómo autenticar desde la línea de comandos o en el aire?¿Cómo autenticar facebook sdk sin página de diálogo de inicio de sesión?
Respuesta
Authenticating as a Page le dará un token de acceso que puede guardar en su base de datos y luego realizar varias tareas utilizando PHP.
Esto es útil para hacer varias cosas usando cron, como programar publicaciones, mantener varias páginas, publicar en varias páginas a la vez, cargar fotos y muchas otras actividades usando Graph API. Consulte sus documentos para obtener más información sobre cómo hacerlo.
Nota: Solo tiene que autenticar su aplicación una vez y guardar su clave de token de acceso a la página, una vez que hace esto, no tiene que volver a iniciar sesión y puede usar su token de acceso para realizar varias tareas en su página .
No, no hay forma de eludir la página de diálogo de inicio de sesión de Facebook, aunque para su caso puede recuperar la clave de acceso extendida y usarla para publicar en su muro. Se puede utilizar el siguiente código utilizando el SDK de PHP para recuperar el token de acceso
$extendedToken = $facebook->setExtendedAccessToken();
$facebook->api('<PAGE_ID>?fields=access_token');
Entonces sólo tiene que utilizar
$facebook->setAccessToken();
a publicar en su página. Recuerde obtener el permiso antes de generar el token de acceso extendido.
Facebook proporciona un token de acceso para que un usuario use la aplicación de Facebook. Por primera vez, el usuario debe iniciar sesión a través del inicio de sesión de Facebook, luego de iniciar sesión en el sitio, le pedirá permiso para acceder a la aplicación. Una vez que el usuario acepte, Facebook le devolverá un código a través de la url. Usted tiene que tomar el código y usarlo para obtener acceso de ficha
mediante el uso siguiente código
$url = "https://graph.facebook.com/oauth/access_token?client_id=". $yourappId ."&redirect_uri=". urlencode($this->redirect_url) ."&client_secret=". $youappsecret."&code=". $code;
$auth_token = $this->getContents($url);
$str = explode('=',$auth_token);
$token = explode('&expires', $str[1]);
Aquí $ testigo tendrá el token de acceso de un usuario, u puede almacenar esa señal en ur db local y Usa ese token para publicar un mensaje en Facebook. es simple ... eso es todo.
para publicar un mensaje en el Fb pared
$fb_id = "User_fb_id"
$access_token = "User_Access_Token_Take by Above code"
$msg = "Message_to_post"
$img_path = "Image_Path"
$facebook = new Facebook(array(
'appId' => $this->appId,
'secret' => $this->secret,
'cookie' => true));
if($msg != NULL) {
$attachment = array(
'message' => $msg,
'name' => 'NHM',
'picture' => $img_path);
}
try {$result = $facebook->api('/'. $fb_id . '/feed/',
'post',
$attachment);
if(isset($result['id']))
return true;
else
return false;
} catch(FacebookApiException $e) {
return $e->getMessage();
}
Aquí tienes a ID de usuario de Facebook del usuario. Para obtener ID de usuario utilizar el siguiente código
$url = "https://graph.facebook.com/me?access_token=". $access_token;
$userInfo = $this->getContents($url);
$userInfo = json_decode($userInfo, true);
public function getContents($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec ($ch);
curl_close ($ch);
return $content;
}
Prueba esto. Avísame si hay problemas
¿Qué es $ this-> getContents no puedo encontrar ningún nombre de método como este en Facebook SDK –
Agregué la función getContents. Perdón por haber perdido ese. –
En lugar de llamar a la función, puede colocar el código directamente. –
- 1. Iniciando sesión sin mostrar una página de inicio de sesión
- 2. Diálogo de inicio de sesión PyQt
- 3. iOS: ¿Cómo autenticar a un usuario después de iniciar sesión (para inicio de sesión automático)?
- 4. Iniciar sesión en Django sin autenticar
- 5. página de inicio de sesión en phpmyadmin
- 6. Autenticación Ajax sin dejar que aparezca el diálogo de inicio de sesión del navegador
- 7. sistema de inicio de sesión sin contraseña
- 8. JS SDK FB.login() funciona, pero el cuadro de diálogo emergente permanece abierto después de iniciar sesión
- 9. ¿Cómo pasar la página de inicio de sesión con Wget?
- 10. Redirigir la página de inicio de sesión/registro de Wordpress a una página de inicio de sesión/registro personalizada
- 11. FB JS-SDK no puede detectar el inicio de sesión del usuario de FB directamente
- 12. Rails & Devise: ¿Cómo renderizar la página de inicio de sesión sin un diseño?
- 13. Estilo Drupal 7 página de inicio de sesión
- 14. Autenticar cortafuegos múltiples Symfony2 con forma de un inicio de sesión
- 15. inicio de sesión único en asp.net
- 16. Uso de Devise 1.3 para autenticar las solicitudes de inicio de sesión de JSON
- 17. la página de inicio de sesión después de playframework
- 18. Redirigir a una página después de un inicio de sesión
- 19. ¿Cómo implementar una página de inicio de sesión en una aplicación GWT?
- 20. Cookies de inicio de sesión/sesión, Ajax y seguridad
- 21. Live SDK - Intente iniciar sesión sin SignInButton
- 22. Script de inicio de sesión sencillo sin base de datos
- 23. Django: HTTPS solo para la página de inicio de sesión?
- 24. fb: botón de inicio de sesión personalizado?
- 25. GXT: Cómo traer la página de inicio de sesión cuando la sesión expira
- 26. ¿Es un dominio seguro (HTTPS) totalmente necesario para una página de inicio de sesión?
- 27. Configuración Diseñar inicio de sesión sean página raíz
- 28. Wordpress - cómo detectar si la página actual es la página de inicio de sesión
- 29. ¿Cómo se redirige a la página de inicio si el usuario accede a la página de inicio de sesión después de iniciar sesión?
- 30. JASIG CAS Inicie sesión sin la pantalla de inicio de sesión CAS
¿No vence el token? –
Sí, se vencerá. Pero puede extender el token haciendo una llamada a la API y obteniendo un token de larga duración (máximo de validez de 60 días), luego puede guardarlo en su base de datos. –