2011-09-17 11 views
0

FB c#SDKを使用してFB MVC3サイトを開発しています。FB c#SDKのアクセス許可ですか?

私のコントローラにはこの行があります プライベートconst string ExtendedPermissions = "user_about_me、publish_stream";ログオン方法で

はこの行です:場合(fbWebContext.IsAuthorized(ExtendedPermissions.Split(「」)))

いつも、私はソースにトレースされた私は、アクセストークンを持っているにもかかわらずfalseを返しますコード...

BOOLのisAuthorized =にisAuthenticated()。ユーザーが承認されるようにtrueを返します。次に、この呼び出しで始まるアクセス許可を確認します。 var currentPerms = HasPermissions(AccessToken、Settings.AppId、UserId、permissions);

それは、「インストール」の値を持つ単一のエントリを返します。後で見るように、これは意味をなさない。そして、それはそうのようなFBの権限に対して渡されたパーミッションをチェックをループ...読ん

を保管してください: foreachの(権限内のvarパーマ) { (currentPerms.Contains(パーマ)!)もし { リターン偽;当然の }} 権限user_about_meとpublish_streamはFBの権限ではないので、それはそれが必要としてfalseを返します。しかし、私はFBのアプリに行くと、これを示します

私の基本情報にアクセス 名前、プロフィール画像、性別、ネットワーク、ユーザーID、友達のリスト、および私が誰とも共有している他の情報が含まれています。

だから私の質問は次のとおりです。 意味「インストール」はどのような? user_about_meを返すべきではありませんか?

これ以上の行はありません。 var currentPerms = HasPermissions(AccessToken、Settings.AppId、UserId、permissions);

リターン "user_about_me"。それが失敗している理由はまだそれが唯一の単語は、「インストール」

を返しだから私は知っているが、ロジックは、それが失敗してはならないと言われます。これは、ユーザのFB権限へのアクセスと関係しています。

誰もこれを見たり、答えを持っていますか?

多くのおかげ

答えて

1

私はFBのC#SDK 5.2.1を試してみましたが、私はHasPermissionに問題がありました。しかし、ここで検索し、あなたの本当の疑問を見つけました。私の場合のFacebookWebContext.Current.HasPermission( "user_about_me")はfalseを返します。しかし、FacebookWebContext.Current.IsAuthorized( "user_about_me")はtrueを返します。

私は

if (FacebookWebContext.Current.IsAuthorized("publish_stream")) 

にしようと、私にはtrueを返します。

また、分割方法を試して、一度に多くのアクセス許可を確認しても問題ないかどうかを確認しました。

ヒント:最後のSDKのバージョンを試してみて、(私は間違って何かを持っていると思わせる)FacebookWebContext.Current代わりに「fbWebContext」を使用してみてください。

1

同じ問題があり、ビューバッグアイテムが設定されていないため解決されました。

facebookに渡されるパーミッション/スコープを確認してください。

私は

ViewBag.ExtendedPermissionsの=のExtendedPermissionsを追加する必要がありました。

これは、javascriptとpassthroughでレンダリングされます。

関連する問題