質問

I am accessing Nexmo API by passing API Key and API Secret. Nexmo uses OAuth 1.0a and I have managed to retrieve the Access Token and Token Secret using DotNetOpenAuth. I have no previous experience with Nexmo. I want to know that how to use Access Token and Token Secret instead of API Key and API Secret. On nexmo website there is not lot of help about this. There is a line written on the bottom of following URl (https://labs.nexmo.com/#oauth) which says "replace "api_key" and "api_secret" by OAuth parameters". I don't know how to do that. Does anyone know?

Hi, I have seen the PHP example but didn't understand much from it. May be I am not getting the idea of OAuth completely. I am using DotNetOpenAuth for signing with Nexmo website. Following is the code I have used so far,

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)

I have used Desktop consumer class because was not able to work with WebConsumer.

役に立ちましたか?

解決

There's a screencast here, using PHP, it should be roughly the same for C#. You really don't want to manage the OAuth signing yourself, find a good C# library that does it for you, then just make the request through that.

This example and library may be helpful. At the end of the example, it shows making a call to google after the session has been setup to use the access token. You'll just go through a similar process with Nexmo:

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

As to OAuth in genral, the flow is essentially:

  • Get a Request Token from the Service (in this case Nexmo). That request token is matched to the application credentials you'll already have (you can create these from the Nexmo dashboard).

  • Redirect to user to authorize that request token. At this point you just wait for the user to be redirected back with an authorized token.

  • When the user is redirected back with an authorized token, trade that for a long use token, and store the credentials (you'll use those credentials any time you need to make requests on behalf of the user's account).

For the most part, OAuth Client libraries handle all the details, and your application only needs to be concerned with the high level flow.

You can find more information on the OAuth flow at the OAuth site.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top