我正在尝试允许用户使用 FlickrNet 库/API 从 Asp.net 应用程序将视频上传到 Flickr。我从 Flickr 获得了一个 API key 和一个 API secret 。此外,我正在使用 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”时,会抛出以下异常。 “无效的身份验证 token (98)”。
AuthRequest Http 请求的内容如下所示。
<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<frob>72157627073829842-9d8e31b9dcf41ea1-162888</frob>
</rsp>
Upload methods Http 请求的内容如下所示。
<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
<err code="98" msg="Invalid auth token" />
</rsp>
我在 flickr 论坛上看到了类似的帖子 here但根据我的理解,似乎我做的一切都是对的,但仍然无法弄清楚我做错了什么。
如有任何帮助,我们将不胜感激。
最佳答案
好吧,我讨厌回答我自己的问题,尤其是那些没有投票、没有答案、观点很少的问题,但是尽管如此,我还是从 Flickr 的支持人员那里得到了答案,所以我想我还是把它贴出来这里是为了以防其他人发现这个有用。
AuthCalcUrl 返回一个 URL,而不是实际的身份验证 token 。这也更适用于桌面身份验证,而不是基于 Web 的身份验证。您链接到的论坛帖子正在谈论移动身份验证。 对于 Web 身份验证,您需要 follow the flow detailed here: 因此,您调用 Flickr.AuthCalcWebUrl,然后将用户重定向到该 URL。 然后,当他们通过身份验证时,他们将被发送到在您的 API key 设置中设置的回调 URL。此 URL 将包含一个 frob。 然后最后在回调 url 网页中从查询字符串中获取 frob 并调用 Flickr.AuthGetToken(frob); 如果您想实际查看此操作,请从示例页面下载示例 ASP.Net 网站。
关于c# - Flickr 'Invalid auth token (98)' 从 Asp.net 应用程序上传视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6515768/