我見過很多關於ASP .NET網站和Facebook之間集成的文檔,但我還沒有找到一個簡單的工作示例,即使使用Facebook C#SDK。與facebook的ASP.NET網站驗證
我只想要一個「以Facebook登錄」的例子,並獲得基本的用戶信息(如姓名,電子郵件和照片)。
你們能幫我嗎?
非常感謝!
我見過很多關於ASP .NET網站和Facebook之間集成的文檔,但我還沒有找到一個簡單的工作示例,即使使用Facebook C#SDK。與facebook的ASP.NET網站驗證
我只想要一個「以Facebook登錄」的例子,並獲得基本的用戶信息(如姓名,電子郵件和照片)。
你們能幫我嗎?
非常感謝!
就像你說的using Facebook C# SDK
,那麼這裏就是路徑和畫布應用程序的一些代碼:
1-創建從Visual Studio Web應用程序
2 - 安裝的NuGet和的NuGet Facebook C# SDK
得到
3-從https://developers.facebook.com/apps/
創建和配置你的應用程序。
4-對於Facebook整合你的web配置:
<configuration>
<configSections>
<section name="facebookSettings" type="Facebook.FacebookConfigurationSection" />
</configSections>
<facebookSettings appId="123..." appSecret="abc...." siteUrl="http://apps.facebook.com/myapp/" canvasPage="http://app.facebook.com/myapp" secureCanvasUrl="https://myapp.com/" canvasUrl="http://myapp.com/" cancelUrlPath="http://www.facebook.com/" />
...
通過使用SDK,您可以解析簽名的請求或餅乾被Facebook JS SDK寫
FacebookWebContext fbWebContext = new FacebookWebContext();
//Check if user auhtenticated
bool IsAuthenticated = fbWebContext.IsAuthenticated();
在這裏,你可以通過朋友數:
FacebookWebClient fbWebClient = new FacebookWebClient();
dynamic result = fbWebClient.Get("me/friends");
var friends = result["data"];
int frienCount = friends.Count;
對於客戶端:
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId: '123...',
status: true,
cookie: true,
xfbml: true,
oauth:true });
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
<!-- rest of your html -->
</body>
對於登錄&詢問許可javascript
FB.getLoginStatus(function(response) {
console.log(response);
if ((response.status)&&(response.status=='connected')) {
//successs
} else {
//user declined
}, {scope:'user_likes, offline_access'}
});
我在我的項目更喜歡客戶端登錄因而尚未註冊的用戶有着陸頁,例如,如果提交表單,然後我叫上面的代碼塊。
注意:您必須爲Internet Explorer設置P3P標題以根據您的服務器讀取/寫入Cookie。對於IIS,global.asax
:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
}
Volià
工作完美!非常感謝! –
@asdf_enel_hak我找不到FacebookWebContext –
@asdf_enel_hak也找不到FacebookWebClient –
雖然這看起來有些重複的基本問題,這是非常真實的,即使是在我開發的東西我無法找到任何像樣的例子,我看到了各種不同代碼遍佈幾個博客文章。 – gideon