lukhnos/objectiveflickr

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. :)

screen shot 2015-08-24 at 12 54 43 pm

this error show me when upload image ??

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?

@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.