how to upload image in flickr
Closed this issue · 16 comments
var context :OFFlickrAPIContext = OFFlickrAPIContext(APIKey: Flickr["consumerKey"], sharedSecret: Flickr["consumerKey"])
var request : OFFlickrAPIRequest = OFFlickrAPIRequest(APIContext: context)
request.delegate = self
var imagedta = UIImageJPEGRepresentation(self.m_ShareImage, 0.5)
var imageStream : NSInputStream = NSInputStream(data: imagedta)
request.uploadImageStream(imageStream, suggestedFilename: "footer.jpg", MIMEType: "image/jpeg", arguments: NSDictionary(objectsAndKeys:"1","is_public") as [NSObject : AnyObject])
i am using this but not working not posted
You'll need to make the request object an instance variable somewhere (like your controller class) – here your request is a local object, and it's immediately released at you exit the scope. As a result, the OFFlickrAPIRequest will cancel the scheduled HTTPS request, and therefore nothing is being sent.
any example code in swift?
any example code in swift?
Unfortunately, not at this point, but pull requests are welcome. :)
i solve my issue, thanks.now its work in swift :)
@ArjunSa786 hi Arjun.. can you please help me how to upload image from local folder to Flickr in swift
hi nasreekar..
func flickrRequest() -> OFFlickrAPIRequest
{
if flickrRequestt.isEqual(nil)
{
flickrRequestt = OFFlickrAPIRequest(APIContext: self.flickrContextt)
flickrRequestt.delegate = self
}
return flickrRequestt
}
@objc func flickrContext() -> OFFlickrAPIContext
{
if !flickrContextt.isEqual(nil)
{
flickrContextt = OFFlickrAPIContext(APIKey: "------", sharedSecret: "---------")
var authToken:String = NSUserDefaults.standardUserDefaults().objectForKey(kStoredAuthTokenKeyName) as! String
var authTokenSecret:String = NSUserDefaults.standardUserDefaults().objectForKey(kStoredAuthTokenSecretKeyName) as! String
if (authToken.length() > 0) && (authTokenSecret.length() > 0)
{
flickrContextt.OAuthToken = authToken
flickrContextt.OAuthTokenSecret = authTokenSecret
}
}
return flickrContextt
}
func setAndStoreFlickrAuthToken(var inAuthToken:NSString ,var inSecret: NSString)
{
if (inAuthToken.length) != 0 || (inSecret.length) != 0
{
self.flickrContextt.OAuthToken = nil
self.flickrContextt.OAuthTokenSecret = nil
NSUserDefaults.standardUserDefaults().removeObjectForKey(kStoredAuthTokenKeyName)
NSUserDefaults.standardUserDefaults().removeObjectForKey(kStoredAuthTokenSecretKeyName)
}
else
{
self.flickrContextt.OAuthToken = inAuthToken as String
self.flickrContextt.OAuthTokenSecret = inSecret as String
NSUserDefaults.standardUserDefaults().setObject(inAuthToken, forKey: kStoredAuthTokenKeyName)
NSUserDefaults.standardUserDefaults().setObject(inSecret, forKey: kStoredAuthTokenSecretKeyName)
}
}
func flickrAPIRequest(inRequest: OFFlickrAPIRequest!, didObtainOAuthAccessToken inAccessToken: String!, secret inSecret: String!, userFullName inFullName: String!, userName inUserName: String!, userNSID inNSID: String!)
{
self.setAndStoreFlickrAuthToken(inAccessToken, inSecret: inSecret)
self.flickrRequestt.sessionInfo = nil
}
func flickrAPIRequest(inRequest: OFFlickrAPIRequest!, didObtainOAuthRequestToken inRequestToken: String!, secret inSecret: String!) {
}
func flickrAPIRequest(inRequest: OFFlickrAPIRequest!, didCompleteWithResponse inResponseDictionary: [NSObject : AnyObject]!)
{
if (inRequest.sessionInfo) as! String == kCheckTokenStep
{
}
self.flickrRequestt.sessionInfo = nil
}
func flickrAPIRequest(inRequest: OFFlickrAPIRequest!, didFailWithError inError: NSError!)
{
}
// MARK: - Share on Flickr
@IBAction func act_FlickrShare(sender: AnyObject)
{
self.flickrContextt.OAuthToken = nil
self.flickrContextt.OAuthTokenSecret = nil
NSUserDefaults.standardUserDefaults().removeObjectForKey(kStoredAuthTokenKeyName)
NSUserDefaults.standardUserDefaults().removeObjectForKey(kStoredAuthTokenSecretKeyName)
let oauthswift = OAuth1Swift(
consumerKey: Flickr["consumerKey"]!,
consumerSecret: Flickr["consumerSecret"]!,
requestTokenUrl: "https://www.flickr.com/services/oauth/request_token",
authorizeUrl: "https://www.flickr.com/services/oauth/authorize",
accessTokenUrl: "https://www.flickr.com/services/oauth/access_token"
)
oauthswift.authorizeWithCallbackURL( NSURL(string: "oauth-swift://oauth-callback/flickr")!, success: {
credential, response in
self.flickrContextt.OAuthToken = credential.oauth_token as String
self.flickrContextt.OAuthTokenSecret = credential.oauth_token_secret as String
self.OauthToken = credential.oauth_token as String
self.OauthSecretToken = credential.oauth_token_secret as String
if !self.flickrContextt.isEqual(nil)
{
self.flickrRequestt = OFFlickrAPIRequest(APIContext: self.flickrContextt)
self.flickrRequestt.delegate = self
self.flickrRequestt.requestTimeoutInterval = 60.0;
}
NSUserDefaults.standardUserDefaults().setObject(credential.oauth_token as String, forKey: "FlickrOAuthToken")
NSUserDefaults.standardUserDefaults().setObject(credential.oauth_token_secret, forKey: "FlickrOAuthTokenSecret")
self.flickrRequestt.sessionInfo = kUploadImageStep
var imagedta = UIImageJPEGRepresentation(self.m_ShareImage, 0.5)
var imageStream : NSInputStream = NSInputStream(data: imagedta)
self.flickrRequestt.uploadImageStream(imageStream, suggestedFilename: self.m_ShareTextMsg, MIMEType: "image/jpeg", arguments: NSDictionary(objectsAndKeys:"1","is_public") as [NSObject : AnyObject])
UIApplication.sharedApplication().idleTimerDisabled = true
}, failure: {(error:NSError!) -> Void in
})
}
@ArjunSa786 thanks arjun.. will try to implement this code and check once
any special permissions or keys required before i implement this code?
Yeah key is required.
On Feb 10, 2016 1:02 PM, "Abhijith Sreekar" notifications@github.com
wrote:
@ArjunSa786 https://github.com/ArjunSa786 thanks arjun.. will try to
implement this code and check once
any special permissions or keys required before i implement this code?—
Reply to this email directly or view it on GitHub
#62 (comment)
.
@ArjunSa786 I already implemented flickr search API using the key and secret.. can i use them or do i have to create a new one again for the upload API Authentication?
@nasreekar use same
@ArjunSa786 hi arjun.. can i get ur personal mail id so that i can actually say what i have to do?
send ur email id.
ok
