使用OAuth访问Nexmo c# API

本文关键字:API Nexmo 访问 OAuth 使用 | 更新日期: 2023-09-27 18:16:15

我通过传递API Key和API Secret访问Nexmo API。Nexmo使用OAuth 1.0a,我已经设法使用DotNetOpenAuth检索访问令牌和令牌秘密。我以前没有使用Nexmo的经验。我想知道如何使用访问令牌和令牌秘密而不是API密钥和API秘密。在nexmo网站上没有很多关于这方面的帮助。有一行写在下面的URl (https://labs.nexmo.com/#oauth)的底部,它说"替换"api_key"answers"api_secret"由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)

我使用了桌面消费者类,因为无法与WebConsumer一起工作。

使用OAuth访问Nexmo c# API

这里有一个截屏,使用PHP,它应该与c#大致相同。你真的不想自己管理OAuth签名,找一个好的c#库来帮你做,然后通过它发出请求。

这个示例和库可能会有所帮助。在示例的最后,它显示了在会话设置之后调用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,流本质上是:

  • 从服务(在本例中为Nexmo)获取请求令牌。该请求令牌与您已经拥有的应用程序凭据相匹配(您可以从Nexmo仪表板创建这些凭据)。

  • 重定向到用户以授权该请求令牌。此时,您只需等待使用授权令牌将用户重定向回。

  • 当用户使用授权令牌重定向回时,将其交易为长期使用令牌,并存储凭证(您将在任何需要代表用户帐户发出请求时使用这些凭证)。

在大多数情况下,OAuth Client库处理所有细节,您的应用程序只需要关注高级流。

您可以在OAuth站点找到有关OAuth流的更多信息。