3 messaggi dal 09 novembre 2009
Ciao,
è la prima volta che provo a utilizzare le API di facebook e sto riscontrando dei problemi.
Vi chiedo aiuto perchè non so proprio come uscirne.
Attualmente utilizzo OAuth per autenticarmi a facebook e ho abilitato nella mia applicazione WEBAPI l'utilizzo dell'autenticazione facebook,
in questo modo :
facebookAuthOptions = new FacebookAuthenticationOptions()
{
AppId = "xxxxx",
AppSecret = "xxx",
Provider = new FacebookAuthProvider(),
SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie,

};

facebookAuthOptions.Scope.Add("publish_actions");
facebookAuthOptions.Scope.Add("publish_pages");

app.UseFacebookAuthentication(facebookAuthOptions);

Tutto funziona correttamente e mi loggo ricevo il claim contenente il token che salvo su db per effettuare successive richieste.
Il problema sorge quando tento di pubblicare qualcosa sul profilo dell'utente che si è loggato, in quanto mi restituisce sempre un errore (#200)"the-user-hasnt-authorized-the-application-to-perform". Pensavo che aggiungendo le due permissions nello scope,come da codice sopra riportato, mi chiedesse se l'utente autorizzava o meno la pubblicazione sul suo profilo invece niente di tutto ciò.
Altra particolarità con l'utente Admin dell'applicazione tutto funziona , ma con gli utenti generici che si autenticano non funziona.
Andando su profilo della mia applicazione facebook al login permission ho solo queste tre voci: ["user_friends","email","public_profile"] e non vedo quelle aggiunte da codice nello scope.

Per pubblicare faccio una cosa simile a questa (utilizzando Facebook SDK .NET):
var client = new FacebookClient(access_token);

dynamic parameters = new ExpandoObject();
parameters.message = "Check out this funny article";
parameters.picture = "http://vignette4.wikia.nocookie.net/fantendo/images/5/52/Mushroom2.PNG/revision/latest?cb=20111123224555";
parameters.name = "Article Title";
parameters.caption = "Caption for the link";
parameters.description = "Longer description of the link";
parameters.scope = "publish_stream, publish_actions";
//parameters.actions = new
//{
// name = "View on Zombo",
// link = "http://#",
//};
parameters.privacy = new
{
value = "ALL_FRIENDS",
};
parameters.targeting = new
{
countries = "US",
regions = "6,53",
locales = "6",
};
Path.GetFileName(@"c:\users\public\pictures\sample pictures\koala.jpg")
//}.SetValue(File.ReadAllBytes(@"c:\users\public\pictures\sample pictures\koala.jpg"));

dynamic result = client.Post("me/feed", parameters);


Mi potete aiutare?
Vi ringrazio molto.
Ciao
Paolo
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Paolo,
è un po' di tempo che non sviluppo applicazioni per Facebook ma da quanto vedo da developers.facebook.com mi sembra che ora i permessi come publish_actions debbano essere vagliati, prima che siano concessi alla tua applicazione.

Infatti da qui si legge:

We introduced the review process as a way to ensure the best possible Facebook experience for your app's audience.
[...]
All permissions data must be visibly used within your app. We do not accept permission requests for data that you may decide to use later.


Quindi collegati qui e apri la tua applicazione:
https://developers.facebook.com/apps

Dal menu a sinistra clicca "Status e review" e poi guarda cosa hai in elenco sotto "Approved items / LOGIN PERMISSIONS". Se non c'è publish_actions, allora secondo quanto abbiamo letto non lo puoi usare.

Clicca il bottone "Start a submission" che trovi lì, e seleziona i permessi che intendi ottenere. Assicurati di aver seguito le indicazioni della guida se vuoi avere le migliori possibilità che la review si concluda con successo.
https://developers.facebook.com/docs/facebook-login/review/what-is-login-review#tips-for-a-successful-app-review

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.