2010-12-07 4 views
0

J'essaie d'obtenir toutes les photos utilisateur en utilisant FQL (application Facebook C# SDK, application ASP .NET MVC, VB, iFrame Canvas). Mon code est le suivant:Exception de jeton d'accès OAuth 2.0 non valide

Dim app As New FacebookApp() 
Dim result As New List(Of FB_Picture) 
Dim photoList As Object = app.Fql("SELECT src_small,src_big,src,caption FROM photo WHERE aid IN (SELECT aid FROM album WHERE owner=" + FacebookId.ToString() + ") ORDER BY created DESC LIMIT " + FromN.ToString() + "," + ToN.ToString()) 

For i As Integer = 0 To photoList.Count 
result.Add(New FB_Picture() With {.Caption = photoList(i).caption, .Src = photoList(i).src, .Src_big = photoList(i).src_big, .Src_small = photoList(i).src_small}) 
Next 
Return result 

FB_Picture est ma classe pour stocker des photos des utilisateurs.

Mon application dispose des autorisations user_photos.

Mais j'ai une erreur - non valide OAuth 2.0 jeton d'accès

FacebookOAuthException: Invalid OAuth 2.0 Access Token] 
Facebook.FacebookApp.MakeRequest(HttpMethod httpMethod, Uri requestUrl, Byte[] postData, String contentType) +393 
Facebook.<>c__DisplayClassf.<OAuthRequest>b__e() +20 
Facebook.FacebookApp.WithMirrorRetry(Func`1 body) +225 
Facebook.FacebookApp.OAuthRequest(Uri uri, IDictionary`2 parameters, HttpMethod httpMethod) +338 
Facebook.FacebookApp.RestServer(IDictionary`2 parameters, HttpMethod httpMethod) +481 
Facebook.FacebookAppBase.Api(String path, IDictionary`2 parameters, HttpMethod httpMethod) +236 
Facebook.FacebookAppBase.Api(IDictionary`2 parameters) +132 
Facebook.FacebookAppExtensions.Fql(FacebookAppBase app, String query) +310 

Pourriez-vous me aider? Que puis-je réparer? Puis-je utiliser FQL en utilisant Facebook C# SDK?

Répondre

1

Vous devez avoir une session active pour effectuer une requête FQL. Consultez les exemples dans la dernière version du Facebook C# SDK pour obtenir de l'aide sur la façon d'obtenir un jeton d'accès. Une fois que vous avez un jeton d'accès, il suffit de changer votre code à ce qui suit:

Dim app As New FacebookApp("your_access_token_here") 
2

Il y a une chose que les développeurs du Facebook SDK ne font pas clairement aux nouveaux utilisateurs du SDK ou en effet de nouvelles personnes qui approchent Facebook développement.

Le SDK Facebook est évidemment un emballage, mais c'est un emballage sur les cookies. Qu'est-ce que cela signifie à la fin de la journée est que Facebook maintenir l'état de la session pour votre application. Vous ne le maintenez pas, ils le font. Donc, chaque fois qu'un utilisateur de votre application clique sur un lien dans votre application et que vous souhaitez suivre l'utilisateur (ou plus précisément cette session), vous devez vous assurer que vos points de lien vers une URL telle que:

http://apps.facebook.com/Your_Application_Name_Here

et non:

http://www.Your_Application_Name_Here.com

si vous ne puis pas Facebook ne peut pas suivre la séance et vous avez effectivement quitté leur domaine. Vous remarquerez si vous faites l'erreur que je l'ai fait quand j'écrivais sur le lien de mes vues à l'aide Url.Action:

<a href="<%= Url.Action("CreateOrder", "Home") %>">Create an Order</a>

Je continué à obtenir une erreur semblable à la vôtre. Voilà pourquoi Totten et l'autre gars qui a écrit le SDK vous a donné aide des méthodes telles que:

<%= Url.CanvasAction("CreateOrder", "Home") %>

HTH

Questions connexes