Facebook のキャンバス アプリケーション (ASP.NET Web フォーム) で古い Facebook C# SDK (バージョン 4.0.1) を使用しています。SDK から使用する唯一の機能は、ユーザーを承認して Facebook ユーザー ID を取得することです。API は、キャンバス アプリをインストールしたユーザーに対しては機能していますが、新しいユーザーに対しては機能していません。
私は以下のコードを持っています:
Dim lFacebookApp As FacebookApp()
Dim lCanvasAuthorizer As CanvasAuthorizer
Dim lFacebookSettings As New FacebookSettings()
Dim lCanvasSettings As New CanvasSettings()
lFacebookSettings.AppId = "XXXXXXXX"
lFacebookSettings.AppSecret = "XXXXXXXXXX"
lFacebookSettings.CookieSupport = True
lCanvasSettings.CanvasPageUrl = "Canvaspageurl"
lCanvasSettings.CanvasUrl = "canvasUrl"
lCanvasSettings.AuthorizeCancelUrl = New Uri("http://www.facebook.com")
lFacebookApp = New FacebookApp(lFacebookSettings)
lCanvasAuthorizer = New CanvasAuthorizer(FacebookApp, lCanvasSettings)
lCanvasAuthorizer.Perms = "user_about_me, publish_stream"
If (lCanvasAuthorizer.Authorize()) Then
Dim info = lFacebookApp.Get("me")
Dim userId = info.id
End If
以前の動作: 新しいユーザーが を参照するとwww.apps.facebook.com/<appname>
、lCanvasAuthorizer.Authorize()
自動的にログイン ダイアログが開き、次に OAuth ダイアログ ボックスが開きます。
しかし、今では以下のエラーをスローしていますDim info = lFacebookApp.Get("me")
(OAuthException) Error validating access token: The session is invalid because the user logged out.
lCanvasAuthorizer.Authorize()
ユーザーの oAuth ダイアログを開くはずですが、そうではありません。古い Facebook C# SDK は壊れていますか?