我试图允许用户使用FlickrNet库/ API从Asp.net应用程序上传视频到Flickr。我从Flickr获得了API密钥和API秘密。另外,我正在使用FlickrNet库中的AuthGetFrob方法检索authToken。
我的使用语句如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FlickrNet;
我已经创建了两种方法来完成这项任务。
获取并返回AuthToken
的人private string GetAuthenticateToken()
{
Flickr flickr = new Flickr(FLICKR_API_KEY, FLICKR_API_SECRET);
string frob = flickr.AuthGetFrob();
return flickr.AuthCalcUrl(frob, AuthLevel.Write);
}
一个使用该AuthToken上传文件
public void UploadFile(string fileName, string title, string description)
{
try
{
string authToken = GetAuthenticateToken();
Flickr flickr = new Flickr(FLICKR_API_KEY, FLICKR_API_SECRET, authToken);
string photoId = flickr.UploadPicture(fileName, title, description, "", true, false, false);
}
catch (Exception ex)
{
throw ex;
}
}
但是,当我调用'UploadPicture'时,会抛出以下异常。 '无效的身份验证令牌(98)'。
AuthRequest Http请求的内容如下所示。
<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<frob>72157627073829842-9d8e31b9dcf41ea1-162888</frob>
</rsp>
上传方法Http请求的内容如下所示。
<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
<err code="98" msg="Invalid auth token" />
</rsp>
我在flickr论坛here上看到了类似的帖子,但根据我的理解,似乎我正在做的一切正确但仍然无法弄清楚我做错了什么。
非常感谢任何帮助。
答案 0 :(得分:5)
好吧所以我讨厌回答我自己的问题,尤其是那些没有得到选票,没有回答和很少看法的问题,但是我从Flickr的支持中得到了答案,所以我想我也可以发布它这是为了万一其他人发现这个使用。
AuthCalcUrl返回一个URL,而不是实际的身份验证令牌。此外,更多的是桌面身份验证,而不是基于Web的身份验证。您链接到的论坛帖子正在谈论移动身份验证。 对于Web身份验证,您需要follow the flow detailed here: 因此,您调用Flickr.AuthCalcWebUrl,然后将用户重定向到该URL。 然后,当他们进行身份验证后,他们将被发送到您在API密钥设置中设置的回拨网址。此网址将包含一个frob。 然后最后在回调网址页面中,您从查询字符串中获取frob并调用Flickr.AuthGetToken(frob); 如果您希望看到这一点,请从示例页面下载示例ASP.Net网站。