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;
}
感谢您的答复。这真是一个伟大的洞察力和知识。但我实在无法一直分开制作应用程序。我想要做的就像在这个YouTube视频中解释(http://www.youtube.com/watch?v=oORqblE28HI)。我只是想复制这样的东西。 –
添加了JavaScript代码和C#代码,以便您可以请求所有页面,将您的应用程序作为选项卡添加到用户页面,然后知道如何看到女巫页面正在请求您的应用程序。 – balexandre