首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OAuth C# 1.0 Etsy API

OAuth C# 1.0 Etsy API
EN

Stack Overflow用户
提问于 2013-10-16 02:18:58
回答 1查看 2.2K关注 0票数 2

使用OAuth,我试图向Etsy的应用程序接口验证一个web forms项目。有关更多信息,请阅读获取必要的凭据:

http://www.etsy.com/developers/documentation/getting_started/oauth

在下面的代码中,我的授权URL返回:

代码语言:javascript
运行
复制
https://openapi.etsy.com/v2/oauth/request_token?oauth_token=xyz

当我在浏览器中访问它时,我收到一个关于缺少签名的错误。我假设我的URL是错误的。Etsy文档说我应该获取登录url参数。我如何从我的代码中获得它?

代码语言:javascript
运行
复制
var consumerContext = new OAuthConsumerContext
{
    SignatureMethod = SignatureMethod.HmacSha1,
    ConsumerKey = consumerKey,
    ConsumerSecret = consumerSecret,
    UseHeaderForOAuthParameters = true
};

var session = new OAuthSession(consumerContext, 
    "https://openapi.etsy.com/v2/oauth/request_token?scope=email_r%20listings_r",
    "https://openapi.etsy.com/v2/oauth/request_token",
    "https://openapi.etsy.com/v2/oauth/request_token");

IToken requestToken = session.GetRequestToken();
string authorisationUrl = session.GetUserAuthorizationUrlForToken(requestToken);
link1.NavigateUrl = authorisationUrl;
EN

回答 1

Stack Overflow用户

发布于 2013-10-16 08:56:36

我把错误的URL作为OAuthSession的第三和第四个参数:

代码语言:javascript
运行
复制
        public string GetAuthorizationUrl()
    {
        var consumerContext = new OAuthConsumerContext
        {
            SignatureMethod = SignatureMethod.HmacSha1,
            ConsumerKey = m_ConsumerKey,
            ConsumerSecret = m_ConsumerKeySecret,
            UseHeaderForOAuthParameters = true
        };

        var session = CreateSession();

        requestToken = session.GetRequestToken();
        System.Web.HttpContext.Current.Session["EtsyRequestToken"] = requestToken;
        return session.GetUserAuthorizationUrlForToken(requestToken);
    }

OAuthSession CreateSession()
    {
        OAuthConsumerContext consumerContext = new OAuthConsumerContext
        {
            ConsumerKey = m_ConsumerKey,
            ConsumerSecret = m_ConsumerKeySecret,
            SignatureMethod = SignatureMethod.HmacSha1
        };

        OAuthSession session = new OAuthSession(consumerContext, "https://openapi.etsy.com/v2/oauth/request_token?scope=transactions_r",

"https://www.etsy.com/oauth/signin",

"https://openapi.etsy.com/v2/oauth/access_token");
        session.CallbackUri = new Uri(m_ReturnUri);
        return session;
    }

我使用的是WEB API。下面是我使用的库:

代码语言:javascript
运行
复制
 <package id="Microsoft.AspNet.WebApi" version="4.0.30506.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.Client" version="4.0.30506.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.Core" version="4.0.30506.0" targetFramework="net40" />
 <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.30506.0" targetFramework="net40" />
 <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net40" />
 <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
 <package id="Newtonsoft.Json" version="4.5.11" targetFramework="net40" />
 <package id="RestSharp" version="104.2.0" targetFramework="net40" />
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19388287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档