рдЖрдкрдХреЛ
рдлреЗрд╕рдмреБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдлреЗрд╕рдмреБрдХ рдкрд░ 500 рдорд┐рд▓рд┐рдпрди рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВред рдХрдИ рд╕рд╛рдЗрдЯреЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рднрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рдлреЗрд╕рдмреБрдХ рдкрд░ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдЗрдЯ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ 5-10 рдорд┐рдирдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдпрджрд┐ рдЖрдк рдлреЗрд╕рдмреБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╛рдЗрдЯ рдкрд░ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рдкрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдХреЛрдИ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдЪрд░рдг рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
рддреЛ, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ...
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЛ рдлреЗрд╕рдмреБрдХ рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
developers.facebook.com/setupрдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ 2 рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреА: рдРрдк рдЖрдИрдбреА рдФрд░ рдРрдк рд╕реАрдХреНрд░реЗрдЯред
рдЕрдм рдПрдХ рдирдпрд╛ ASP.NET MVC 3 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВред

рд╣рдореЗрдВ Json рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдк
рдпрд╣рд╛рдВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
using Newtonsoft.Json.Linq;
рдпрд╛ NuGet рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ "
Install-Package Newtonsoft.Json
"
Install-Package Newtonsoft.Json
ред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкреГрд╖реНрда рдкрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрд╕рдбреАрдХреЗ рд▓реЛрдб рдХрд░реЗрдВред
Copy Source | Copy HTML
- $ (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝)ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ( рдлрд╝рдВрдХреНрд╢рди ) ({
- if (document.getElementById ( 'fb-root' )! = рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд) {
- var e = document.createElement ( 'рд╕реНрдХреНрд░рд┐рдкреНрдЯ' );
- e.type = 'text / javascript' ;
- e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js' ;
- e.async = true ;
- document.getElementById ( 'fb-root' ) .appendChild (e);
- }
- });
рдЕрдЧрд▓рд╛, рд╣рдо рдРрдк рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкреЗрдЬ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдлреЗрд╕рдмреБрдХ рдкрд░ рдбреЛрдореЗрди рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
Copy Source | Copy HTML
- FB.init ({
- appId: 'Your_APP_ID' , рдХреБрдХреА: рд╕рдЪ ,
- рд╕реНрдерд┐рддрд┐: рд╕рдЪ , xfbml: рд╕рдЪ
- });
рд╣рдо рд╕рд╛рдЗрдЯ рдкреГрд╖реНрда рдкрд░ рдлреЗрд╕рдмреБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рди рдмрдЯрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
Copy Source | Copy HTML
- < fb: рд▓реЙрдЧрд┐рди-рдмрдЯрди рдкрд░рдорд┐рдЯ = "рдИрдореЗрд▓, user_checkins"
- onlogin = "onConnect ();" autologoutlink = "false">
- </ fb: рд▓реЙрдЧрд┐рди-рдмрдЯрди >
xmlns:fb="http://www.facebook.com/2008/fbml"
рдирд╛рдо рд╕реНрдерд╛рди рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
xmlns:fb="http://www.facebook.com/2008/fbml"
ред
рдЖрдк
рдпрд╣рд╛рдВ рдПрдХ рдмрдЯрди рдЬрдирд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред
Fb- рдмрдЯрди рдмрдЯрди рдХреЗ onlogin рдШрдЯрдирд╛ рдХреЛ рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐ рдпрд╛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
OnConnect () рд╡рд┐рдзрд┐ рдХреЛ
рдСрдирд▓реЛрдЬреЗрди рдИрд╡реЗрдВрдЯ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ
access_token ред
Copy Source | Copy HTML
- рдлрдВрдХреНрд╢рди рдСрдирдХрдиреЗрдХреНрдЯ () {
- FB.getLoginStatus ( рдлрд╝рдВрдХреНрд╢рди (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) {
- рдЕрдЧрд░ (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рд╕рддреНрд░) {
- window.location = "../Account/FbLogin?token=" + response.session.access_token;
- } {
- // рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рджреНрдж рдХрд░рддрд╛ рд╣реИ
- }
- });
- };
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдХрд╛рдЙрдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА
FbLogin () рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ:
Copy Source | Copy HTML
- рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓рдбрд╝рд╛рдИред FbLogin ( рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреЛрдХрди)
- {
- WebClient рдЧреНрд░рд╛рд╣рдХ = рдирдпрд╛ WebClient ();
- string JsonResult = client.DownloadString ( рд╕реНрдЯреНрд░рд┐рдВрдЧ .Concat ( "https://graph.facebook.com/me?access_token=" , рдЯреЛрдХрди));
- рдЬреЛрдмрдЬреЗрдХреНрдЯ jsonUserInfo = JObject.Parse (JsonResult);
- UInt64 facebook_userID = jsonUserInfo.Value < UInt64 > ( "рдЖрдИрдбреА" );
- string username = jsonUserInfo.Value < string > ( "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" );
- string email = jsonUserInfo.Value < string > ( "email" );
- // рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ
- FormAuthentication.SetAuthCookie (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рд╕рддреНрдп );
- RedirectToAction ( "рдЗрдВрдбреЗрдХреНрд╕" , "рд╣реЛрдо" ) рд▓реМрдЯрд╛рдПрдВ ;
- }
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдХреНрдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ,
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рд╕рднреА рдХреЛрдб
_LogOnPartial.cshtml :
Copy Source | Copy HTML
- @if (Request.IsAuthenticated)
- {
- < text > рд╕реНрд╡рд╛рдЧрдд < strong > @ User.Identity.Name </ strong > ! [@ Html.ActionLink ("рд▓реЙрдЧ рдСрдлрд╝", "рд▓реЙрдЧрдСрдлрд╝", "рдЦрд╛рддрд╛")] </ рдкрд╛рда >
- }
- рдЕрдиреНрдпрдерд╛
- {
- < fb: рд▓реЙрдЧрд┐рди-рдмрдЯрди рдкрд░рдорд┐рдЯ = "рдИрдореЗрд▓, user_checkins" onlogin = "onConnect ();" autologoutlink = "false"> </ fb: рд▓реЙрдЧрд┐рди-рдмрдЯрди >
- < div id = "fb-script" st yle = "рдбрд┐рд╕реНрдкреНрд▓реЗ: рдЗрдирд▓рд╛рдЗрди; рдорд╛рд░реНрдЬрд┐рди-рд▓реЗрдлреНрдЯ: 20px;">
- </ div >
- @: [@ Html.ActionLink ("рд▓реЙрдЧ рдСрди", "рд▓реЙрдЧрдСрди", "рдЦрд╛рддрд╛")]
- }
- < рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ = "рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ" рдкреНрд░рдХрд╛рд░ = "рдкрд╛рда / рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ" >
- window.fbAsyncInit = function () {
- FB.init ({appId: .in 177572352298948 тАЩ , рд╕реНрдерд┐рддрд┐: рд╕рдЪреНрдЪреА , рдХреБрдХреА: рдЭреВрдареА , xfbml: true });
- };
- рд╕рдорд╛рд░реЛрд╣ рдХреЗ рдмрд╛рдж рдХрдиреЗрдХреНрдЯ () {
- FB.getLoginStatus ( рдлрд╝рдВрдХреНрд╢рди (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) {
- рдЕрдЧрд░ (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рд╕рддреНрд░) {
- window.location = "../Account/FbLogin?token=" + response.session.access_token;
- } {
- // рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд░рджреНрдж рдХрд░рддрд╛ рд╣реИ
- }
- });
- };
- $ (рджрд╕реНрддрд╛рд╡реЗрдЬрд╝)ред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ( рдлрд╝рдВрдХреНрд╢рди ) ({
- if (document.getElementById ( 'fb-root' )! = рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд) {
- var e = document.createElement ( 'рд╕реНрдХреНрд░рд┐рдкреНрдЯ' );
- e.type = 'text / javascript' ;
- e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js' ;
- e.async = true ;
- document.getElementById ( 'fb-root' ) .appendChild (e);
- }
- });
- </ script >
рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рдкрд╣рд▓реЗ:

рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж:
