【发布时间】:2011-10-16 22:57:51
【问题描述】:
我正在开发一个 facebook 应用程序,它需要在加载时获取以下信息。
- 已添加应用程序的 Facebook 粉丝页面 URL/ID。
- 如果从特定页面访问此应用程序的用户是否是该页面的管理员。
我正在 ASP.Net 中开发此应用程序,并且正在使用 Facebook Graph API。
非常感谢任何帮助。
【问题讨论】:
标签: asp.net facebook-graph-api facebook-page
我正在开发一个 facebook 应用程序,它需要在加载时获取以下信息。
我正在 ASP.Net 中开发此应用程序,并且正在使用 Facebook Graph API。
非常感谢任何帮助。
【问题讨论】:
标签: asp.net facebook-graph-api facebook-page
让我分享一些见解
首先,我强烈建议您使用 Microsoft 的 Facebook C# SDK,而不是在您的 .NET 项目中使用普通调用。
使用当前的 API,您可以在您的管理员页面中执行此操作
manage_page)http://facebook.com/add.php?api_key=[API_KEY]&pages=1&page=[PAGE_ID] 将您的应用作为选项卡添加到其自己的页面
现在您的应用已在用户页面上运行,您需要一种方法来检查该页面是否在 Facebook 内作为选项卡运行,以及运行的页面 ID 是什么。
signed_request 并验证 Data,因为它具有您需要的 ["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;
}
【讨论】: