我有一個示例應用程序,託管在AppHarbor,現在想通過Facebook集成授權。所以我下載了金塊Facebook.Web.Mvc包來實現它。Facebook OAuth + AppHarbor隨機端口解決方案
閱讀教程,在控制器後,我有方法:
public ActionResult Login(string returnUrl)
{
var oauthClient = new FacebookOAuthClient(FacebookApplication.Current) { RedirectUri = GetFacebookRedirectUri() };
if (!string.IsNullOrWhiteSpace(returnUrl))
{
returnUrl = Url.Action("Index", "Facebook");
}
dynamic parameters = new ExpandoObject();
parameters.scope = ExtendedPermissions;
var state = new { csrf_token = CalculateMD5Hash(Guid.NewGuid().ToString()), return_url = returnUrl };
parameters.state = Base64UrlEncode(Encoding.UTF8.GetBytes(JsonSerializer.Current.SerializeObject(state)));
SetFacebookCsrfToken(state.csrf_token);
string s = oauthClient.GetLoginUrl(parameters).AbsoluteUri;
ViewBag.FacebookLoginUrl = s;
//new LogEvent(s).Raise();
return View(new AccountModel());
}
查看:
<a href="@ViewBag.FacebookLoginUrl" id="lUrl">
<div class="fblogin"></div>
在本地主機這對我的作品。 但是,當我上傳到appharbor,我看到,生成的鏈接指示地址+端口16013(作爲支持通常隨機端口)。所以點擊它會顯示我的facebook登錄窗口,而不是空白頁面。
我手動配置我在facebook的應用程序設置到這個端口,但它沒有幫助。
另外我試圖通過這個端口訪問我的網站 - 什麼都沒有。
然後我通過jquery將端口號更改爲80,它也沒有幫助。
你有這樣的問題嗎?
您能否包含'GetFacebookRedirectUri()'?很可能你只需要在該方法中修改端口號。 – 2012-01-13 10:05:00
謝謝你,你的回答幫助我做了更多的一步 - 我使用GetFacebookRedirectUri(),然後切割端口號。這發生回答我的FacebookCallBack()方法,但它不會繼續。我卡住了,因爲我不知道如何在AppHarbor上調試這種情況。現在我使用 新的LogEvent(s).Raise(); 將消息發送到AppHarbor的管理區域 – 2012-01-19 08:31:26