Расширение Facebook токена

1

Я использую пакет Microsoft.AspNet.Mvc.Facebook NuGet. Я хотел бы обменять обычный токен для расширенного токена доступа (тот, который заменил разрешение offline_access).

Из Googling вокруг я нашел URL должен быть в таком формате:

https://graph.facebook.com/oauth/access_token?             
    client_id=[APP_ID]&
    client_secret=[APP_SECRET]&
    grant_type=fb_exchange_token&
    fb_exchange_token=[EXISTING_ACCESS_TOKEN]

Поэтому я использую следующий код:

var longToken = await context.Client.PostTaskAsync("/oauth/access_token",
                    new
                    {
                        client_id = fbApp.AppId,
                        client_secret = fbApp.AppSecret,
                        grant_type = "fb_exchange_token",
                        fb_exchange_token = context.AccessToken
                    });

Это возвращает нуль. Нет ошибки или чего-то еще. Просто нулевое значение.

Edit: Также попробовал следующее, что также не сработало. Но GET кажется логичным, чем POST.

dynamic result = context.Client.Get("oauth/access_token",
                    new
                    {
                        client_id = fbApp.AppId,
                        client_secret = fbApp.AppSecret,
                        grant_type = "fb_exchange_token",
                        fb_exchange_token = context.AccessToken
                    });

                var longToken = result.access_token as string;
Теги:
asp.net-mvc
facebook

1 ответ

-2

Я успешно сделал это как запрос GET, а не POST :) Просто поместите необходимые параметры в URL-адрес и запросите его как запрос GET, и ответ возвращает токен долгосрочного доступа.

EDIT. Когда вы получите результат из этого, вы должны сначала разобрать строку запроса (я не уверен в С#, но, возможно, вы можете использовать эту ссылку: http://msdn.microsoft.com/en-us/library/ms150046(v= vs.110).aspx).

После этого попробуйте получить свойство access_token, и я понял это на своем конце. Я делал это в node.js, но, по сути, тот же поток.

  • 0
    Я работаю с C# SDK . Вот почему я отметил этот вопрос с помощью C# и asp.net-mvc . Я не получаю ответ. Это проблема.
  • 0
    Вместо того, чтобы использовать SDK, почему бы вам не сделать обычный HTTP-вызов GET и посмотреть, получите ли вы ответ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню