3

InstaSharp用来从我的帐户中获取所有媒体。此代码可以正常工作,没有任何错误:

 var user = new InstaSharp.Endpoints.Media.Authenticated(config, authInfo);
 var media = user.Popular();

现在,如果我对以下内容做同样的事情Users

var user = new InstaSharp.Endpoints.Users.Authenticated(config, authInfo);
var feed = user.Feed("self");

这将返回:

OAuthParameterException:提供的 access_token 无效。

为什么相同的访问令牌在一个地方有效,但在另一个地方无效?


注意:我在获取访问令牌时传递了所有范围(basic, comments, likes, relationships)。我也尝试过使用默认值(basic),但它也不起作用。

注意2:由于我在 aConsoleApplication中尝试此操作,因此获取访问令牌的方式是生成链接,复制/粘贴到浏览器,确认授权并从 url 获取。我不确定这有什么不同,但值得注意的是......

4

1 回答 1

2

我找出问题所在。似乎生成的链接是在请求code,而不是access_token。所以这就是它无效的原因。

我意识到我使用的是旧版本,InstaSharp即使我是从它的网站下载的。首先,通过NuGet. 然后,我得到访问令牌和媒体,如下所示:

var config = new InstagramConfig(clientId, clientSecret);
var AuthLink = OAuth.AuthLink(config.OAuthUri + "/authorize", 
                              config.ClientId, 
                              config.RedirectUri,
                              scopes, 
                              OAuth.ResponseType.Code);

var authInfo = new OAuth(config);

// get the code from the link then pass it to RequestToken
var response = await authInfo.RequestToken(code);
var user = new Users(config, response);
var media = await user.RecentSelf(count: 30);

一切都运作良好。

于 2014-12-25T11:43:15.340 回答