Facebook richiede che creo un appsecret_proof: https://developers.facebook.com/docs/graph-api/securing-requestsC# aiuto necessario per la creazione di Facebook AppSecret_Proof HMACSHA256
E ho fatto questo utilizzando il seguente codice:
public string FaceBookSecret(string content, string key)
{
var encoding = new System.Text.ASCIIEncoding();
byte[] keyByte = encoding.GetBytes(key);
byte[] messageBytes = encoding.GetBytes(content);
using (var hmacsha256 = new HMACSHA256(keyByte))
{
byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
return Convert.ToBase64String(hashmessage);
}
}
Tutto sembra bene per me, comunque facebook dice che appecret_proof non è valido. Ho effettuato l'accesso, posso fare tutto normalmente quando rimuovo la chiave. Quindi, per risparmiare un po 'di tempo:
- Sì sto postando l'URL corretto
- Sì sto passando una valida access_token
- Sì sto usando lo stesso access_token nella dimostrazione, come io sono nella richiesta
- Sì mio appsecret va bene, e funziona
esempio nell'uso
dynamic results = client.Post("/" + model.PostAsId + "/feed", new { message = model.Message, appsecret_proof = FaceBookSecret(postAs.AuthToken, AppSecret) });
Penso che probabilmente abbia qualcosa a che fare con la codifica o qualcosa del genere, ma per essere onesti, non lo so.
Sono anche utilizzando il Facebook SDK .NET tuttavia questo non ha molto nella documentazione, e non sembra colpire su qualche cosa a che fare con l'automazione, le operazioni lato server ecc
Grazie
si può mostrare più codice si prega di - come si fa a creare 'Client'? Sei sicuro di utilizzare la stessa app.Id sia per hash che per richiesta? Inoltre, prova 'Encoding.UTF8.GetBytes' nel caso in cui - potrebbe essere che farà il trucco ... – avs099
Ho avuto lo stesso problema e risolto per le API di facebook v2.4 qui: http://stackoverflow.com/questions/31932675/how-to-send-appsecret-proof-using-facebook-c-sharp-sdk/31933544 # 31933544 – Yovav