8

Sigo recibiendo el error OAuthException (#210) Subject must be a page. incluso si estoy usando el token de acceso a la página y no el token de acceso a la aplicación.OAuthException "(# 210) El sujeto debe ser una página."

Estoy utilizando el siguiente:

  1. reciente JavaScript SDK de Facebook (//connect.facebook.net/en_US/all.js)
  2. Llamando al /{PAGE_ID}/tabs?app_id={APP_ID}&method=POST&access_token={PAGE_ACCESS_TOKEN} utilizando el método FB.api una vez que el usuario ha iniciado sesión en

mi solicitud. es no FBML pero una aplicación Canvas/iFrame. ¿Qué estoy haciendo mal?

He investigado la web, incluyendo Stackoverflow y otros foros de Facebook, pero todavía no hay respuesta al respecto. OAuth está habilitado para mi aplicación.

Además, si copio y pegué el enlace en el navegador funciona bien. No funciona si lo hago usando la API.

Respuesta

5

Finalmente lo puse en funcionamiento.

Sin embargo, en lugar de usar el FB.api para llamar al enlace de arriba, utilicé jQuery.

Utilicé jQuery "$ .getJson (url)" y funcionó.

Funciona como a continuación.

Construya el enlace de la siguiente manera.

"https://graph.facebook.com/{PAGE_ID}/tabs?app_id={APP_ID} & method = post & señal_acceso = {} PAGE_ACCESS_TOKEN & devolución de llamada =?"

Llame al método jQuery como se indica a continuación. "$ .getJSON (pageUrl, OnCallBack);" donde "OnCallBack" es el método de devolución de llamada. Puede hacer cualquier cosa que necesite en la devolución de llamada. En mi caso, fue algo así como a continuación.

function OnCallBack(r, s) { 

     var html = ""; 
     if (s == "success" && !r.error) { 
      for (p in r) { 
       html += p + ": " + r[p] + "<br />"; 
      } 
     } else { 
      html = r.error.message; 
     } 
     $("#dv").html(html); 
    } 
3

Para cualquiera que se este error de nuevo: tengo el mismo mensaje de error al uso wininet para enviar una solicitud HTTPS a https://graph.facebook.com/ ......

simplemente he cambiado el verbo de "POST" a "GET", y entonces funciona así:

//string strVerb = "POST"; 
string strVerb = "GET"; 

PS: se utiliza la variable "strVerb" como el segundo parámetro de ventanas funciona HttpOpenRequest.

Cuestiones relacionadas