Facebook wymaga, aby utworzyć appsecret_proof: https://developers.facebook.com/docs/graph-api/securing-requestsC# help wymagane do utworzenia Facebook AppSecret_Proof HMACSHA256
i zrobiłem to za pomocą następującego kodu:
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);
}
}
wszystko wygląda w porządku dla mnie, jednak mówi facebook że appsecret_proof jest nieprawidłowy. Jestem zalogowany, mogę zrobić wszystko normalnie po usunięciu klucza. Tak aby zaoszczędzić trochę czasu:
- Tak jestem delegowania do prawidłowego adresu URL
- Tak ja przechodząc ważny access_token
- Tak używam tego samego access_token w dowodzie, jak jestem w żądaniu
- Tak mój appsecret jest w porządku i działa
przykład w wykorzystaniu
dynamic results = client.Post("/" + model.PostAsId + "/feed", new { message = model.Message, appsecret_proof = FaceBookSecret(postAs.AuthToken, AppSecret) });
Myślę, że prawdopodobnie ma to coś wspólnego z kodowaniem lub czymś w rodzaju linii, ale szczerze mówiąc, po prostu nie wiem.
Jestem również za pomocą Facebook .net SDK to jednak nie ma wiele w dokumentacji, a nie wydaje się, aby uderzyć na cokolwiek zrobić z automatyki, operacje po stronie serwera itp
Dzięki
można pokazać więcej kodu proszę - w jaki sposób tworzyć 'client'? Czy na pewno używasz tego samego app.Id zarówno dla hash i wniosek? Również - spróbuj "Encoding.UTF8.GetBytes" na wszelki wypadek - może to wystarczy ... – avs099
Miałem ten sam problem i rozwiązałem go dla facebook APIs v2.4 tutaj: http://stackoverflow.com/questions/31932675/how-to-send-appsecret-proof-using-facebook-c-sharp-sdk/31933544 # 31933544 – Yovav