2013-05-31 2 views
1

Я обращаюсь к API Nexmo, передавая API-ключ и API-интерфейс. Nexmo использует OAuth 1.0a, и мне удалось получить токен доступа и токен-секрет, используя DotNetOpenAuth. У меня нет опыта работы с Nexmo. Я хочу знать, как использовать токен доступа и токен-секрет вместо API-ключа и API-интерфейса. На веб-сайте nexmo об этом мало. В нижней части следующего URl (https://labs.nexmo.com/#oauth) есть строка, в которой говорится «заменить« api_key »и« api_secret »параметрами OAuth». Я не знаю, как это сделать. Кто-нибудь знает?Доступ к API Nexmo C# с использованием OAuth

Привет, Я видел пример PHP, но не очень понял его. Возможно, я полностью не понимаю идею OAuth. Я использую DotNetOpenAuth для подписания с веб-сайтом Nexmo. Ниже приводится код, который я использовал до сих пор,

Dim consumer3 As New DesktopConsumer(NexmoDescriptionService.Description, NexmoDescriptionService.TokenManager) 

Dim requestToken As String = "" 
consumer3.RequestUserAuthorization(Nothing, Nothing, requestToken) 

Dim extraParameters = New Dictionary(Of String, String) From {{"request_token", requestToken}} 

consumer3 = New DesktopConsumer(NexmoDescriptionService.Description.UserAuthorizationEndpoint, NexmoDescriptionService.TokenManager) 
Dim test = consumer3.RequestUserAuthorization(extraParameters, Nothing, requestToken) 

Dim request As System.Net.HttpWebRequest = consumer3.PrepareAuthorizedRequest(NexmoDescriptionService.Description.RequestTokenEndpoint, requestToken) 

Я использовал Desktop потребительского класса, потому что не был в состоянии работать с WebConsumer.

ответ

0

Существует screencast here, using PHP, он должен быть примерно одинаковым для C#. Вы действительно не хотите управлять подписью OAuth самостоятельно, найдите хорошую библиотеку C#, которая сделает это за вас, а затем просто сделайте запрос через это.

Возможно, это example and library. В конце примера показано, что вызов для google после сеанс был настроен для использования токена доступа. Вы просто пройти через аналогичный процесс с Nexmo:

// make a request for a protected resource 
string responseText = session.Request().Get().ForUrl("http://www.google.com/m8/feeds/contacts/default/base").ToString(); 

Как OAuth в Genral, поток, по существу:

  • Получить запрос маркера от службы (в данном случае Nexmo) , Этот токен запроса сопоставляется с учетными данными приложения, которые у вас уже есть (вы можете создать их с панели инструментов Nexmo).

  • Перенаправить пользователя на авторизацию этого токена запроса. На этом этапе вы просто ждете, пока пользователь будет перенаправлен обратно с авторизированным токеном.

  • Когда пользователь перенаправляется обратно с помощью авторизованного токена, торгуйте, чтобы использовать токен длительного использования, и сохраните учетные данные (вы будете использовать эти учетные данные в любое время, когда вам нужно будет делать запросы от имени учетной записи пользователя).

По большей части библиотеки OAuth Client обрабатывают все детали, и ваше приложение должно быть связано только с потоком высокого уровня.

Дополнительную информацию о потоке OAuth вы можете найти на странице the OAuth site.

Смежные вопросы