Вопрос по c#, facebook-c#-sdk, facebook-graph-api, facebook – Декодировать подписанный запрос без аутентификации

1

Можем ли мы использовать Facebook C # SDK для декодированияsigned_request параметр, который передается на вкладку Facebook,без использования аутентификации? В основном, я ищу способ расшифровки и разбораобъект JSON страницы что подписанный запрос содержит.

Я ищу.NET C # эквивалентно выполнению того же типа декодирования в этом примере PHP:Простой способ проверить, нравится ли пользователю страница

Ваш Ответ

2   ответа
1

ается секретом вашего приложения, поэтому вы можете декодировать его независимо от того, авторизовал ли ваш пользователь ваше приложение

{edit} Теперь я понимаю, что вы имеете в виду библиотеку с именем Authentication {/ edit}

Если вы найдете другую библиотеку или переопределите алгоритм для HMAC SHA-256 и декодера base64url, я уверен, что вы могли бы сделать это без использования этой конкретной библиотеки, но, вероятно, проще использовать ее

8

Только для фанатов в Facebook с asp.net C # sdk

Вы получаете подписанный запрос, когда ваша веб-страница загружается в приложение Facebook canvas; у вас должна быть возможность проанализировать подписанный запрос примерно так:

if (Request.Params["signed_request"] != null)
{
    string payload = Request.Params["signed_request"].Split('.')[1];
    var encoding = new UTF8Encoding();
    var decodedJson = payload.Replace("=", string.Empty).Replace('-', '+').Replace('_', '/');
    var base64JsonArray = Convert.FromBase64String(decodedJson.PadRight(decodedJson.Length + (4 - decodedJson.Length % 4) % 4, '='));
    var json = encoding.GetString(base64JsonArray);
    var o = JObject.Parse(json);
    var lPid = Convert.ToString(o.SelectToken("page.id")).Replace("\"", "");
    var lLiked = Convert.ToString(o.SelectToken("page.liked")).Replace("\"", "");
    var lUserId= Convert.ToString(o.SelectToken("user_id")).Replace("\"", "");
}

Вам нужно добавить ссылку на библиотеки json, чтобы проанализировать подписанный запрос в C #, скачать сhttp://json.codeplex.com/

Также ссылаются наКак декодировать OAuth 2.0 для Canvas Sign_request в C #? если вы беспокоитесь о подписанном запросе.

Я только что попробовал, и хотя любимый статус и идентификатор страницы работают, по какой-то причине lUserId не может быть проанализирован. есть идеи почему? mathew
@mathew вы должны убедиться, что вы вошли в Facebook, когда вы находитесь на странице компании. Imran
Спасибо, этот метод хорошо сработал для декодирования и анализа подписанного в Facebook подписки_request с помощью JSON! landsteven
@landsteven Я рад, что это сработало для тебя. Imran
@Imran да, я уверен, что я вошел в систему. Во всяком случае я проанализировал UserId через API JavaScript. Спасибо mathew

Похожие вопросы