在ASP中以编程方式上传照片到Flickr.. NET没有授权页

本文关键字:NET Flickr 授权 照片 ASP 编程 方式 | 更新日期: 2023-09-27 18:08:04

我试图通过ASP上传照片到Flickr。. NET文件上传控制和flickrnet。但是在flickrnet.codeplex.com下的示例是,将页面重定向到flickr以获得授权并返回。

是否有一种方法可以上传文件而不重定向到asp.net c#中的授权页面?

在ASP中以编程方式上传照片到Flickr.. NET没有授权页

是。我可以。首先需要用到FlickrManager Instance

下面的代码
 public class FlickrManager
{
    public const string ApiKey = "get it from flickr website";
    public const string SharedSecret = "get it from flickr website";
    public static Flickr GetInstance()
    {
        return new Flickr(ApiKey, SharedSecret);
    }
    public static Flickr GetAuthInstance()
    {
        var f = new Flickr(ApiKey, SharedSecret);
        if (OAuthToken != null)
        {
            f.OAuthAccessToken = OAuthToken.Token;
            f.OAuthAccessTokenSecret = OAuthToken.TokenSecret;
        }
        return f;
    }
    public static OAuthAccessToken OAuthToken
    {
        get
        {
            if (HttpContext.Current.Request.Cookies["OAuthToken"] == null)
            {
                return null;
            }
            var values = HttpContext.Current.Request.Cookies["OAuthToken"].Values;
            return new OAuthAccessToken
                       {
                           FullName = values["FullName"],
                           Token = values["Token"],
                           TokenSecret = values["TokenSecret"],
                           UserId = values["UserId"],
                           Username = values["Username"]
                       };
        }
        set
        {
            // Stores the authentication token in a cookie which will expire in 1 hour
            var cookie = new HttpCookie("OAuthToken")
            {
                Expires = DateTime.UtcNow.AddHours(1),
            };
            cookie.Values["FullName"] = value.FullName;
            cookie.Values["Token"] = value.Token;
            cookie.Values["TokenSecret"] = value.TokenSecret;
            cookie.Values["UserId"] = value.UserId;
            cookie.Values["Username"] = value.Username;
            HttpContext.Current.Response.AppendCookie(cookie);
        }
    }
}

一旦上面的类创建,你可以开始在aspx页面的任何地方使用下面的方法。如果你有什么问题,请告诉我。

 public string FilckerUpload(string url, string title, string description, string tags)
    {
        OAuthAccessToken accessToken = new OAuthAccessToken();
        accessToken.FullName = "your app name";
        accessToken.Token = "get it from Flickr Website for your login";
        accessToken.TokenSecret = "get it from Flickr Website for your login";
        accessToken.UserId = "get it from Flickr Website for your login";
        accessToken.Username = "get it from Flickr Website for your login";
        FlickrManager.OAuthToken = accessToken;
        Flickr flickr = FlickrManager.GetAuthInstance();
        string FileuploadedID = flickr.UploadPicture(@url, title, description, tags, true, false, false);
        PhotoInfo oPhotoInfo = flickr.PhotosGetInfo(FileuploadedID);
        return oPhotoInfo.Small320Url;
    }