在ASP中以编程方式上传照片到Flickr.. NET没有授权页
本文关键字:NET Flickr 授权 照片 ASP 编程 方式 | 更新日期: 2023-09-27 18:08:04
我试图通过ASP上传照片到Flickr。. NET文件上传控制和flickrnet。但是在flickrnet.codeplex.com下的示例是,将页面重定向到flickr以获得授权并返回。
是否有一种方法可以上传文件而不重定向到asp.net c#中的授权页面?
是。我可以。首先需要用到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;
}