Facebook erfordert zu erstellen, dass ich eine appsecret_proof erstellen: https://developers.facebook.com/docs/graph-api/securing-requests# help C erforderlich Face AppSecret_Proof HMACSHA256
Und ich habe dies mit dem folgenden Code getan:
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);
}
}
Alles sieht gut für mich, aber Facebook sagt dass der appsecret_proof ungültig ist. Ich bin eingeloggt, ich kann alles normal machen, wenn ich den Schlüssel entferne. So etwas Zeit zu sparen:
- Ja ich auf die richtige URL bin Entsendung
- Ja ich vorbei ein gültiges access_token
- Ja ich das gleiche access_token im Beweis verwenden, wie ich in der Anfrage am
- Ja mein appsecret ist in Ordnung, und arbeitet
Beispiel in Verwendung
dynamic results = client.Post("/" + model.PostAsId + "/feed", new { message = model.Message, appsecret_proof = FaceBookSecret(postAs.AuthToken, AppSecret) });
Ich denke, es hat wahrscheinlich etwas mit Kodierung oder etwas in dieser Richtung zu tun, aber um ehrlich zu sein, ich weiß es einfach nicht.
ich auch die Facebook .net SDK jedoch bin mit dieser nicht viel in der Dokumentation hat, und scheint nicht auf irgendetwas zu schlagen mit Automatisierung, Server-Seite Operationen usw.
Dank
können Sie mehr Code zeigen, bitte - wie schafft man 'Klient'? Sind Sie sicher, dass Sie dieselbe App.Id für Hash und Anfrage verwenden? Auch - versuchen Sie 'Encoding.UTF8.GetBytes' nur für den Fall - vielleicht wird das den Trick ... – avs099
Ich hatte das gleiche Problem und löste es für Facebook APIs v2.4 hier: http://stackoverflow.com/fragen/31932675/how-to-send-appsecret-proof-using-facebook-c-sharp-sdk/31933544 # 31933544 – Yovav