我使用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:由于我在ConsoleApplication
中尝试此操作,我获取访问令牌的方式是,生成链接,复制/粘贴到浏览器,确认授权并从URL获取。我不确定它有什么不同,但值得注意......
答案 0 :(得分:2)
我找出问题所在。似乎生成的链接正在请求code
,而不是access_token
。这就是为什么它无效。
我意识到我使用旧版InstaSharp
即使我从它的网站上下载了它。首先,我通过NuGet
安装了latest version。然后,我得到访问令牌和这样的媒体:
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);
一切都很顺利。