Flickr'无效的身份验证令牌(98)'从Asp.net应用程序上传视频

时间:2011-06-29 04:30:22

标签: c# asp.net flickr

我试图允许用户使用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上看到了类似的帖子,但根据我的理解,似乎我正在做的一切正确但仍然无法弄清楚我做错了什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

好吧所以我讨厌回答我自己的问题,尤其是那些没有得到选票,没有回答和很少看法的问题,但是我从Flickr的支持中得到了答案,所以我想我也可以发布它这是为了万一其他人发现这个使用。

AuthCalcUrl返回一个URL,而不是实际的身份验证令牌。此外,更多的是桌面身份验证,而不是基于Web的身份验证。您链接到的论坛帖子正在谈论移动身份验证。 对于Web身份验证,您需要follow the flow detailed here: 因此,您调用Flickr.AuthCalcWebUrl,然后将用户重定向到该URL。 然后,当他们进行身份验证后,他们将被发送到您在API密钥设置中设置的回拨网址。此网址将包含一个frob。 然后最后在回调网址页面中,您从查询字符串中获取frob并调用Flickr.AuthGetToken(frob); 如果您希望看到这一点,请从示例页面下载示例ASP.Net网站。