Facebook粉丝页面Id在关联的Facebook应用程序

问题描述:

我正在开发一个facebook应用程序,它需要在加载时获取以下信息。Facebook粉丝页面Id在关联的Facebook应用程序

  • Facebook粉丝页面URL /添加了应用程序的ID。
  • 如果从特定页面访问此应用程序的用户是该页面的管理员或不是。

我在ASP.Net中开发这个应用程序,我使用的是Facebook Graph API。

任何帮助,高度赞赏。

让我分享一些见解

首先,我会强烈建议你在你的.NET项目中使用微软的Facebook C# SDK,而不是使用普通电话。


步骤

在当前的API,你可以做到这一点在你的管理页面

  • 要求用户进行连接,并要求与管理页面的权限(manage_page
  • 管理页面的权限,您可以轻松填满用户拥有的所有页面的下拉列表
  • 要求用户将您的应用添加到其自己的页面如使用http://facebook.com/add.php?api_key=[API_KEY]&pages=1&page=[PAGE_ID]

现在你已经在用户页面上运行你的应用程序选项卡,你需要一种方法来检查,如果该页面中Facebook的运行作为一个标签或不是,什么是运行到页面ID从。

  • 在你的应用程序标签网址页面,您指定,索要signed_request和验证Data,因为它有["page"]["id"],你需要这样你就可以检查对节省PAGE_ID,你应该已经保存在管理区时,你的用户将你的应用添加到它的Facebook页面。

我希望这有助于。

代码

登录并要求所有用户页面

<select class="facebook-page-list" disabled="disabled"> 
    <option>Facebook pages</option></select> 

<script> 
<!-- 
    FB.init({ 
    appId: 'API_KEY', 
    cookie: true, 
    status: true, 
    xfbml: true 
    }); 

    FB.api('/me', function (user) { 
    if (user != null) { 
     if (user.error) { 
      $(".fb-login").show(); 
     } else { 
      // example from Facebook 
      var image = document.getElementById('image'); 
      image.src = 'https://graph.facebook.com/' + user.id + '/picture'; 
      var name = document.getElementById('name'); 
      name.innerHTML = user.name 

      // get all user Pages 
      facebookGetPages(); 
     } 
    } 
    }); 

    function facebookGetPages() { 
    FB.getLoginStatus(function (response) { 
     if (response.session) { 
      access_token = response.session.access_token; 
      FB.api(
      { 
       method: 'fql.multiquery', 
       access_token: access_token, 
       queries: { 
       query1: 'select page_id from page_admin where type <> "APPLICATION" and uid = ' + response.session.uid, 
       query2: 'select page_id, name, page_url from page where page_id in (select page_id from #query1)' 
       } 
      }, function (queries) { 
       if (queries.error_msg) 
       alert(queries.error_msg); 
       else { 
       pages = queries[1].fql_result_set; 

       $(".facebook-page-list").empty(); 
       for (i = 0; i < pages.length; i++) 
        $(".facebook-page-list").append("<option value='" + pages[i].page_id + "'>" + pages[i].name + "</option>"); 
       $(".facebook-page-list").attr("disabled", false); 
       } 
      }); 
     } else { 
      // no user session available, someone you dont know 
     } 
    }); 
    } 
//--> 
</script> 

从您的应用程序获取页面ID

ViewBag.signed_request = "can't get id"; 
dynamic signed_request = FacebookWebContext.Current.SignedRequest; 
if(signed_request != null) 
{ 
    ViewBag.signed_request = signed_request.Data.page.id; 
} 
+0

感谢您的答复。这真是一个伟大的洞察力和知识。但我实在无法一直分开制作应用程序。我想要做的就像在这个YouTube视频中解释(http://www.youtube.com/watch?v=oORqblE28HI)。我只是想复制这样的东西。 –

+0

添加了JavaScript代码和C#代码,以便您可以请求所有页面,将您的应用程序作为选项卡添加到用户页面,然后知道如何看到女巫页面正在请求您的应用程序。 – balexandre