usuarios usuario sesion quitar puedo publicitaria para pagina nombres nombre movil iniciar ejemplos cuenta crear como comercial administrador facebook facebook-graph-api facebook-page

sesion - Facebook: obtener la lista de páginas que un usuario es administrador de



no puedo crear nombre de usuario en mi pagina de facebook (9)

Estoy usando el gráfico api.

Tengo un usuario conectado y quiero recuperar una lista de identificadores de página de todas las páginas de las que el usuario es administrador.

¿Hay alguna forma de hacer esto? Los documentos son bastante malos, y circulares.


Es simple con Graph API. Pasos:

  1. Obtenga el permiso de manage_pages del usuario (permisos extendidos).
  2. Llame a Graph API - https://graph.facebook.com/me/accounts

Puede probar este procedimiento en el explorador de gráficos -> Simplemente haga clic en el botón ''Obtener Token de acceso'' - > en ''Permiso extendido'' , seleccione ''manage_pages'' y envíelo. Le dará los detalles de la página de administración JSON.


Lo resolví con algunos FQL:

FB.api({method: ''fql.multiquery'', access_token: <access_token>, queries: { query1: ''select page_id from page_admin where uid = '' + <uid>, query2: ''select page_id, name, page_url from page where page_id in (select page_id from #query1)'' } }, function(queries){ var pages = queries[1].fql_result_set; }}


Puede llamar a FB.api(/me/accounts) si no desea usar FQL.

''cuentas'' es una conexión del objeto Usuario. Consulte la documentación para este @ http://developers.facebook.com/docs/reference/api/user

Por supuesto, con Facebook, siempre hay una trampa. En este momento, este método devolverá no solo las páginas de las que el usuario es administrador, sino también las aplicaciones que han instalado. Estoy casi seguro de que este NO es el comportamiento previsto. Me parece recordar que lo usé hace unos meses y que solo recibí una lista de páginas. La documentación tampoco menciona las aplicaciones en esta lista.

Sin embargo, este es un problema fácil de resolver: Facebook devuelve el nombre, la categoría y la identificación para cada elemento de la lista, y cada aplicación tiene una categoría de ''Aplicación''. Simplemente me estoy asegurando de que solo publique artículos cuya categoría no sea ''Aplicación''.


También puede usar el permiso "pages_show_list" si solo desea la lista de páginas de Facebook de las que es administrador el usuario.

El permiso "manage_pages" le pedirá permiso al usuario para administrar sus páginas, lo que puede ser demasiado intrusivo en función de lo que necesite.


Tenga en cuenta que su solución devuelve páginas y aplicaciones . Si quiere estrictamente Pages, puede usar FQL Multiquery con una cláusula "Type not equals" como esta:

{ "query1":"select page_id from page_admin where uid = me()", "query2":"select page_id, name, page_url, type from page where type!=''APPLICATION'' AND page_id in (select page_id from #query1)" }


Usted solicita el permiso con el JavaScript SDK al iniciar sesión

FB.login(function(){}, {perms:''manage_pages''});

y luego, una vez que inician sesión, pueden recuperar las páginas (y aplicaciones) de la siguiente manera:

FB.api(''/me/accounts'', function(response){ console.log(response); })



Permiso

$facebook->getLoginUrl( array( "scope" => "manage_pages" ) );

acción

$accounts = $facebook->api(''/me/accounts''); return $accounts;


<head> <link rel="stylesheet" href="@Url.Content("~/Content/jquery.remodal.css")"> </head> <body> <script type="text/javascript" src="@Url.Content("~/Scripts/Home/jquery.remodal.js")"></script> <div class="remodal" id="page-selector-remodal" data-remodal-id="pageselector"> <p>Please select a facebook page Share </p> <div id="page-name-container"> <select id="page-name" class="form-control"> </select> </div> <a class="remodal-confirm" id="facebookPageSelectSubmit" href="#">OK</a> <a class="remodal-cancel" id="remodal-cancel" href="#">CANCEL</a> </div> <div data-remodal-id="modal-status"> <p id="modal-status-content"> The Account you have selected does not have Email. </p> <br> <a class="remodal-confirm" href="#">OK</a> </div> <script type="text/javascript> (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'')); window.fbAsyncInit = function () { FB.init({ appId: ''YOUR APP ID'', 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.1 }); }; var pageSelector = $(''[data-remodal-id=pageselector]'').remodal(); var modalstatus = $(''[data-remodal-id=modal-status]'').remodal(); function statusChangeCallback(response) { 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. $("#modal-status-content").empty().html(response.status); modalstatus.open(); } else { $("#modal-status-content").empty().html(response.status); modalstatus.open(); // 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 = ''Please log '' + ''into Facebook.''; } } function FacebookHandler() { FB.login(function (result) { if (result != null && result.authResponse != null && result.authResponse != undefined) { facebookPageData = result; FB.api(''/me/accounts'', function (accountsResult) { if (accountsResult != null && accountsResult.data.length != 0) { //open the remodal here pageSelector.open(); facebookAccountsData = accountsResult; var data = accountsResult[''data'']; if (data != null) { for (var i = 0; i < data.length; i++) { $("#page-name").append(''<option value="'' + data[i].id + ''">'' + data[i].name + ''</option>''); } } unblockUI(''body''); $("#flip-container, #feature-container, #branding-container, #intro-arrow-container, #share-container, #copyright-text-container").hide(); $("body").css("padding-right", "0"); } else { $("#modal-status-content").empty().html("The Account you have selected does not have any facebook page,<br />Post to Wall."); modalstatus.open(); pageSelector.open(); unblockUI(''body''); } }); } else { $("#modal-status-content").empty().html("Unable to retrieve your details from facebook, try again after sometime."); modalstatus.open(); unblockUI(''body''); } }, { scope: ''manage_pages, publish_stream'' }); } $("#facebookPageSelectSubmit").on("click", function () { var facebookpageId = $("#page-name option:selected").val(); if (facebookpageId != null) { FB.api(''/'' + facebookpageId, function (identity) { if (identity != null) { FB.api(''/'' + facebookpageId, { fields: ''access_token'' }, function (resp) { if (resp.access_token != null) { //Get the "resp"(Data) here } else { } }); } else { } }); } else { } }); </script> //Finally call the "FacebookHandler()" function on click </body>