3

FacebookユーザーがログインできるようにするFacebookアドオンと、プロフィール写真などの詳細にアクセスできるアプリを使用してアプリを開発しています。

昨日、アプリは完全に機能し、私の開発は通常どおり継続されていました。

今朝、ログインしてどこまで到達したかを確認しようとすると、アクセストークンのエラーメッセージが表示されました。

個々の部分ビューは正常に読み込まれますが、サイト全体は読み込まれません。さらに調査したところ、ログイン画面で新しいアクセストークンが割り当てられていたことがわかりましたが、サイトがマスターページを表示しようとしたときには、トークンはnullでした。

私のログインは次のとおりです:-

<html>
<head>
  <title>Log On</title>
</head>
<body>
  <div id="fb-root"></div>
  <script type="text/javascript">
    window.fbAsyncInit = function() {
      FB.init({
        appId      : '***app no***',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true
      });

      FB.Event.subscribe('auth.login', function () {
        window.location.reload();
      });
    };

    (function(d){
       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/en_US/all.js";
       d.getElementsByTagName('head')[0].appendChild(js);
     }(document));
  </script>
  <div class="fb-login-button" data-scope="email">
    Login with Facebook
  </div>
 </body>
 </html>

これは私の頭を揚げています。

返されるエラーは(OAuthException)です。現在のユーザーに関する情報を照会するには、アクティブなアクセストークンを使用する必要があります。

これが誰かが解決策を見つけるのに十分な情報であることを願っています。

どうもありがとう

4

3 に答える 3

0

チャネルのURL、つまりWebサイトのパス(ローカルホストまたはサーバードメインの場合があります)を設定していません

<script type="text/javascript">
window.fbAsyncInit = function() {
  FB.init({
    appId      : '***app no***',
    channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File for x-domain communication
    status     : true, 
    cookie     : true,
    xfbml      : true,
    oauth      : true
  });

また、app-idを取得した場所からdeveloper.facebook.comにURLパスを設定する必要があります。

于 2012-12-12T01:45:25.293 に答える
0

さて、12月の初めに行われたFacebookSDKへの変更が私の問題の原因になることを示唆するいくつかの情報を見つけました。与えられたアドバイスに基づいて、プロジェクトのFacebookリファレンスでリファレンスアップデートを実行しました。これにより、Web.configからfacebookSettings行が削除され、次のエラーメッセージが警告ボックスに6回表示されるようになりました。

タイプ「Facebook.IFacebookApplication」への参照は、「\ packages \ Facebook.6.1.4 \ lib \ net40-client \ Facebook.dll」で定義されていると主張していますが、\ packages \ FacebookWeb.5.4.1.0\libが見つかりませんでした\ net40 \ Facebook.Web.dll

プログラムを実行しようとすると、次のエラーが発生します

例外の詳細:System.TypeLoadException:アセンブリ'Facebook、Version = 6.0.10.0、Culture = neutral、PublicKeyToken=58cb4f2111d1e6de'からタイプ'Facebook.FacebookApplication'を読み込めませんでした。

Source Error: 


Line 12:     public class HomeController : Controller
Line 13:     {
Line 14:         FacebookWebContext FBWebContext = new FacebookWebContext();
Line 15:         FacebookWebClient FBWebClient = new FacebookWebClient();
Line 16:
于 2012-12-12T14:29:52.177 に答える
0

私はこれが少し古いものであることを知っていますが、これは他の誰かを助けるかもしれません。最後に答えを見つけました。私が以下を必要としたのはコントローラーにありました:-

var client = new FacebookClient(Session["FacebookToken"].ToString());    

dynamic me = client.Get("me");

これにより、アクティブなトークンが取得され、情報に再度アクセスできるようになりました。

于 2013-06-18T15:24:17.650 に答える