php - unity - API de gráficos de Facebook-Token OAuth




facebook sdk unity (8)

No use type = client_cred, este no es el token de acceso que un usuario otorga para que su aplicación lo use. No necesita redirect_uri o código o ninguna aprobación para obtener el token de acceso de tipo client_cred.

Facebook implementa un borrador inicial de OAuth 2 en este momento. Por lo tanto, todavía no hay respaldo para el "estado".

Pero es bueno que puedas ponerle un sufijo a tu estado en redirect_uri, el punto importante a tener en cuenta aquí es que la URL del sitio que especificaste (que es el redirect_uri)

no debería tener una

signo de interrogación al final o en cualquier lugar en el que sufra como estado del cliente, codificado o no. Si lo hizo, obtendrá el temido "Error al validar el código de verificación"

No uses así

http://www.Redirect.com?

Correct Url es http://www.Redirect.com/

Espero eso ayude.

Intento recuperar datos utilizando la nueva API de gráficos, sin embargo, parece que el token que estoy recuperando de OAuth no está funcionando.

La llamada que estoy haciendo es la siguiente;

$token = file_get_contents('https://graph.facebook.com/oauth/access_token?type=client_cred&client_id=<app_id>&client_secret=<app secret>');

Esto devuelve un token con una longitud de cadena de 41. Para darle un ejemplo de lo que se devuelve, he proporcionado a continuación una muestra (todos los números convertidos a 0, todas las letras mayúsculas a 'A' y letras minúsculas a 'a'

access_token=000000000000|AaaAaaAaaAAaAaaaaAaaAa0aaAA.

Tomo este token de acceso y lo adjunto a la solicitud de llamada de datos, no parece ser el token correcto ya que no devuelve nada. Realizo la llamada de datos de la siguiente manera;

file_get_contents('https://graph.facebook.com/<my_page's_id>/statuses?access_token=000000000000|AaaAaaAaaAAaAaaaaAaaAa0aaAA.')

Cuando recupero manualmente esta página directamente a través del navegador, recibo un mensaje de error 500 / Internal Server.

Cualquier ayuda sería gratamente apreciada.

Actualizar:

Desde entonces he cambiado el método de file_get_contents () para curl. Al recuperar los encabezados, recibo el siguiente mensaje de error ...

{"error":{"type":"OAuthException","message":"Missing client_id"}}

pero mi matriz de publicaciones incluye 'client_id'?


Asegúrate de que tienes una URL codificada para tus parámetros de consulta, tu deberías ser:

000000000000%7CAaaAaaAaaAAaAaaaaAaaAa0aaAA

Nota: también parece ser necesario el parámetro de tipo, sin él también se obtiene 500 error con el mensaje:

{
   "error": {
   "type": "OAuthException",
   "message": "Error validating verification code."
   }
}

en lugar del mensaje que obtienes con otros parámetros faltantes. No puedo ver eso mencionado en la documentación .


Intenta seguir la API, es decir, sin type pero agrega redirect_uri y code (aunque no lo necesitemos):

$token = file_get_contents('https://graph.facebook.com/oauth/access_token?client_id=<app_id>&client_secret=<app secret>&redirect_uri=<url>&code=<code>');

Me encontré con exactamente el mismo problema, pero resultó que el problema no era la codificación del parámetro redirect_uri, o que tenía una barra diagonal o un signo de interrogación simplemente era que pasaba en dos direcciones de redirección diferentes (no había leído la especificación en ese momento). hora).

El redirect_uri solo se usa como una redirección una vez (la primera vez) para redirigir a la parte que confía con el token de "código". La segunda vez, el redirect_uri se devuelve al servidor de autenticación, pero esta vez no se usa como era de esperar (para redirigir) sino que el servidor de autenticación lo usa para verificar el código. El servidor responde con access_token.

http://tools.ietf.org/html/draft-ietf-oauth-v2-05#section-3.5.2

Notarás que la documentación de Facebook (que es terrible) dice buscar "Cambiarla por un token de acceso al obtener https://graph.facebook.com/oauth/access_token ".

En resumen, no tuve que codificar ni hacer nada especial para el Uri, solo pasé el mismo redirect_uri dos veces, y busqué la segunda página para obtener el access_token dentro.


Puede solicitar un token de acceso a través del terminal (usuarios de OSX) usando curl:

curl -F type=client_cred -F client_id=xxxxxxxxxxxxxxx -F client_secret=c0f88xxxxxxxxxxxxxxxxxx1b949d1b8 https://graph.facebook.com/oauth/access_token

Una vez que tenga su token de acceso, puede usarlo en futuras solicitudes curl para realizar cambios a través de la nueva API de gráficos:

Publicar un mensaje en una ID de perfil:

curl -F 'access_token=xxxxxxxxxxxxx|mGVx50lxxxxxxxxxxxxhzC2w.'  -F 'message=Hello Likers'  -F 'id=1250000000000905'  https ://graph.facebook.com/feed

Tal vez tu problema esté resuelto, pero todavía no he encontrado una respuesta aceptada de ti y tal vez esta respuesta ayude a aquellos que enfrentan un problema similar.

Primero tenemos que crear nuestra instancia de aplicación.

$facebook = new Facebook(array(
  'appId' => '149865361795547',
  'secret' => 'ee827a8df6202e1857b3fc28f3185a61',
  'cookie' => true,
)); 

forma fácil de obtener access_token

$token = $facebook->getAccessToken();

obtener el estado de la página a medida que preguntas en tu pregunta

$response = $facebook->api($pageID . '/feed','get',$token);

Gracias..


Tenga en cuenta que

'type' => 'client_cred',

es solo una manera de eludir el siguiente, una vez dicho esto, lo anterior también funciona

Después de que el usuario autorice su aplicación, redirigiremos al usuario nuevamente al URI de redireccionamiento que especificó con una cadena de verificación en el código del argumento, que puede intercambiarse por un token de acceso oauth. Cámbielo por un token de acceso obteniendo https://graph.facebook.com/oauth/access_token . Pase exactamente el mismo redirect_uri que en el paso anterior:

a través de: por: http://developers.facebook.com/docs/api vea también: http://forum.developers.facebook.net/viewtopic.php?pid=238371


necesita ingresar valores reales en lugar de <app_id> y un valor secreto. el código es un valor único que necesita generar, y la URL de redireccionamiento que proporciona verificará que el código sea correcto.





token