0

MVCには多くのサンプルアプリケーションがありますが、私が取り組んでいる現在のプロジェクトでは、Webフォームを使用する必要があります。

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
4

2 に答える 2

1

私はページの読み込み時にこのコードを使用して動作しましたが、あまりきれいなコードではありませんが、最適に使用するために変更する方法を理解することができます. したがって、アルゴリズムは、ページが読み込まれるときに、response.redirect を使用してユーザーを Facebook 認証ページにリダイレクトするというものです。この文字列には、アプリ ID (appid)、ユーザーに要求する権限 (スコープ)、必要な場所の 3 つのパラメーターが含まれます。認証後にユーザーをリダイレクトするFacebookと、乱数であると思われる状態としてのパラメーター。したがって、ユーザーがアプリケーションを承認した後、彼/彼女はあなたのページにリダイレクトされ、Facebook を準備したのと同じ状態を含むリクエスト URL が含まれます (そして、私が推測する多くのリクエストがある場合、どのリクエストが誰であったかを識別するために使用できます)また、アクセス トークンを取得するために Facebook に渡す新しい「コード」パラメータ、

        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);
于 2012-11-08T09:06:18.897 に答える
0

コード ビハインドにアクセス トークンを戻すには、Javascript SDK を使用する必要があります。

http://csharpsdk.org/docs/web/getting-startedのようにFB.Initを使用します。

アクセストークンを取得するために、特定の条件でポストバックします。

ありがとうございました、

ダルメンドラ

于 2012-05-18T11:41:03.900 に答える