2011-01-30 4 views
1

Bonjour j'ai un problème quand j'essaie de poster quelque chose sur le mur des utilisateurs. voici mon code
Facebook C# SDK 4.2.1 affichage sur le problème de mur

protected void Page_Load(object sender, EventArgs e) 
{  
     app = new FacebookApp(); 
     auth = new CanvasAuthorizer(app); 
    auth.Perms += "user_about_me,publish_stream,create_event,offline_access"; 
    if (auth.IsAuthorized()) 
    { 
     Response.Write("authorized " + app.Session.UserId.ToString()+" "+app.Session.AccessToken + "<br/>"); 
     dynamic rez = app.Get("me"); 
     Response.Write(rez.first_name + " "+rez.last_name); 
    } 
    else 
     Response.Write("not authorized ");  
} 
protected void btnPost_Click(object sender, EventArgs e) 
{ 
    dynamic parameters = new ExpandoObject(); 
    parameters.message = "Check out this funny article"; 
    parameters.link = "http://www.example.com/article.html"; 
    parameters.picture = "http://www.example.com/article-thumbnail.jpg"; 
    parameters.name = "Article Title"; 
    parameters.caption = "Caption for the link"; 
    parameters.description = "Longer description of the link"; 
    parameters.actions = new 
    { 
     name = "View on Zombo", 
     link = "http://www.zombo.com", 
    }; 
    parameters.privacy = new 
    { 
     value = "ALL_FRIENDS", 
    }; 
    parameters.targeting = new 
    { 
     countries = "US", 
     regions = "6,53", 
     locales = "6", 
    }; 
    dynamic result = app.Api("/me/feed",parameters); 
} 

lorsque je tente de poster je reçois le:

(OAuthException) Un jeton d'accès actif doit être utilisé pour demander des informations sur l'utilisateur actuel.

Description: Une exception non gérée s'est produite lors de l'exécution de la requête Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails d'exception: Facebook.FacebookOAuthException: (OAuthException) Un jeton d'accès actif doit être utilisé pour interroger des informations sur l'utilisateur actuel.

P.S.

dynamic rez = app.Get("me"); 
     Response.Write(rez.first_name + " "+rez.last_name); 

fonctionne sans problème!

Merci d'avance.

Répondre

3

C'est parce que vous ne l'avez pas donné accès à jeton essayez de mettre

FacebookApp app = new FacebookApp("my_access_token"); 

en haut de l'événement bouton de poste et remplacer

dynamic result = app.Api("/me/feed",parameters); 

avec

dynamic result = app.Post("me/feed", parameters); 
+0

devrait-il être comme ceci: Application FacebookApp = new FacebookApp ("my_access_token"); ou au lieu de "my_access_token" devrait être une sorte de chaîne qui est un jeton d'accès, comme "123csdre23324324 ...."? – Fuzion

+0

ajouter un fichier de paramètres à partir de l'explorateur de solution qui vous donnera un fichier qui peut avoir certaines valeurs dans cela déclarer un identifiant de champ de type chaîne alors tout ce que vous avez à faire est FacebookApp app = new FacebookApp (settingFile.Default.id); –

+0

paramètres fichier permet la cohérence des données que nous pouvons mettre à jour à partir d'un ou plusieurs endroits dans le code –

Questions connexes