我有一个应用程序,将在Facebook页面标签中使用,我将请求基本权限。
我在ASP.NET 3.5中使用ASP.NET MVC。
我正在使用以下操作属性:
[HttpPost]
[CanvasAuthorize]
public ActionResult Index(string signed_request)
{
ViewData["section"] = "post";
FacebookPageModel page = new FacebookPageModel();
if (!string.IsNullOrEmpty(signed_request))
{
string signedRequest = Request.Form["signed_request"];
var DecodedSignedRequest =
FacebookSignedRequest.Parse(
((FacebookConfigurationSection)
ConfigurationManager
.GetSection("facebookSettings"))
.AppSecret,
signed_request);
var SignedRequestData = DecodedSignedRequest.Data;
var RawRequestData = (IDictionary<string, object>)SignedRequestData;
// ok, start getting the data
page.user_id = FacebookWebContext.Current.UserId.ToString();
if (RawRequestData.ContainsKey("page") == true)
{
Facebook.JsonObject RawPageData =
(Facebook.JsonObject)RawRequestData["page"];
if (RawPageData.ContainsKey("liked") == true)
{
page.UserLikesThisPage = (bool)RawPageData["liked"];
}
}
if (RawRequestData.ContainsKey("app_data") == true)
{
page.app_data = RawRequestData["app_data"].ToString();
}
}
return View(page);
}
public class FacebookPageModel
{
public Dictionary<string, string> SignedRequestParameters { get; set; }
public bool UserLikesThisPage { get; set; }
public string app_data { get; set; }
public string user_id { get; set; }
public IEnumerable<TwitterSearchResultsModel> tweets { get; set; }
}
的web.config:
<facebookSettings
appId="221731264504206"
appSecret="blah-blah-blah"
canvasUrl="http://url-of-canvas-page-tab/"
canvasPage="http://url-of-canvas-page-tab/" />
在没有任何其他参数的情况下调用CanvasAuthorize似乎请求基本权限,这就是我想要的。问题是,单击“允许”后,转发网址会将我发送到用户的个人资料页面,而不是我的页面选项卡。
如何配置我的应用以在允许所请求的权限后将用户转发回主叫页面?
谢谢, 斯科特
答案 0 :(得分:1)
事实证明[CanvasAuthorize]有一些我可以使用的附加参数:
[CanvasAuthorize(ReturnUrlPath="enter-url-here")]
我知道这很奇怪,我不知道这一点,因为C#Facebook SDK的记录非常好。 :^)
但它是免费的,所以我该抱怨谁,对吧?
感谢。
答案 1 :(得分:0)
CanvasAuthorize不仅适用于制表符,而仅适用于画布应用程序。