0

我一直在 Facebook 的 Canvas 应用程序(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 坏了吗?

4

1 回答 1

1

Facebook C# SDK 版本 4.0.1 已弃用。使用最新版本

于 2013-02-11T15:55:55.007 回答