2012-05-03 10 views
0

MVCには多数のサンプルアプリケーションがありますが、現在作業中のプロジェクトではWebフォームを使用する必要があります。C#Facebook SDK - サーバー側でキャンバスアプリケーションを承認する方法

私はjavascriptメソッドを使用してアプリケーションを認証できますが、私はサーバー側を使用したいと思います。以下は、私がpage.load

dynamic parameters = new ExpandoObject(); 
parameters.client_id = AppId; 
parameters.client_secret = appSecret; 
parameters.response_type = "code"; 
//parameters.state = state; 
parameters.redirect_uri = "http://fb.local/page.aspx"; 

// The requested response: an access token (token), an authorization code (code), or both (code token). 
parameters.response_type = "token"; 

// list of additional display modes can be found at http://developers.facebook.com/docs/reference/dialogs/#display 
//parameters.display = "popup"; 

// add the 'scope' parameter only if we have extendedPermissions. 
if (!string.IsNullOrWhiteSpace(ExtendedPermissions)) 
parameters.scope = ExtendedPermissions; 

// generate the login url 
var fb = new FacebookClient(); 
var loginUrl = fb.GetLoginUrl(parameters); 

Response.Redirect(loginUrl.AbsoluteUri, true); 

私が承認することができますが、私はURLからアクセストークンを取得することはできませんよ上で開始したものです。

次のページでは、ソースを表示してURLバーにアクセストークンを表示することができますが、コードへのアクセス方法についてはわかりません。一度トークンを取得すると、私はすべて設定されています。

page.aspx#access_token=AAACrxQhmdpY 

答えて

0

コードビハインドへのアクセストークンを取得するには、Javascript SDKを使用する必要があります。 http://csharpsdk.org/docs/web/getting-started

のように

使用FB.Initとアクセストークンを取得するには特定の条件に戻って投稿します。

は、私は私のページのロードや作品、そのない非常にクリーンなコードにこのコードを使用

ダーメンドラ

1

、ありがとう、しかし、あなたはあなたの最高の使用のためにそれを変更する方法を見つけ出すことがあります。そのアルゴリズムは、ページが読み込まれたときに、あなたのアプリケーションID(appid)、あなたのユーザに求めている権限(範囲)、必要な場所の3つのパラメータを含む文字列にresponse.redirectを使ってFacebook認証ページにリダイレクトするというアルゴリズムです承認後にFacebookをリダイレクトするFacebookと、それが乱数でなければならないと思う状態のパラメータ。ユーザーがあなたのアプリケーションを承認した後、Facebookに準備したのと同じ状態を含むリクエストURLとともにあなたのページにリダイレクトされます(あなたが推測するリクエストが多い場合、そのリクエストを特定するために使用できます)また、Facebookに渡してアクセストークンを取得する新しい「コード」パラメータを使用すると、Facebookのc#sdkを使用してアクセストークンを取得できます。コードに「コードがnullでない場合は、alirezaに行きます"とalirezaはresponse.redirectコードの後の行タグですが、これはプロセスを何度も繰り返す必要がないからです(もちろん、おそらくブラウザにはエラーが表示される)。

 int intstate; 
     string strstate; 
     string redirecturltofb; 
     string scope; 
     string appid; 
     code = Request.QueryString["code"]; 

     if (!String.IsNullOrWhiteSpace(code)) 
     { 
      goto alireza; 
     } 

     appid = "424047057656831"; 
     scope = "user_about_me,user_activities,user_groups,email,publish_stream,user_birthday"; 
     intstate = 45; 
     strstate = Convert.ToString(intstate); 
     redirecturltofb = "https://www.facebook.com/dialog/oauth?client_id=" + appid + "&redirect_uri=http://test5-2.apphb.com/&scope=" + scope + "&state=" + strstate; 
     Response.Redirect(redirecturltofb); 
関連する問題