I have been using old Facebook C# SDK (Version 4.0.1) in a Canvas Application (ASP.NET Web Forms) for facebook. The only functionality I use from SDK is to authorize the user and get Facebook User Id. The API is working for the user who installed the canvas app but not for new users.
I have the below code:
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
How this used to work:
When a new user browses to www.apps.facebook.com/<appname>, lCanvasAuthorizer.Authorize() automatically opens a Log in Dialog and then OAuth dialog box.
But, now it is throwing the below error at Dim info = lFacebookApp.Get("me")
(OAuthException) Error validating access token: The session is invalid because the user logged out.
lCanvasAuthorizer.Authorize() supposed to open oAuth dialog for user but it is not. Is the old Facebook C# SDK broken?
Facebook C# SDK version 4.0.1 is deprecated. Use the latest version.