{"id":22962363,"url":"https://github.com/zonble/objectiveplurk","last_synced_at":"2025-07-14T05:37:28.280Z","repository":{"id":754810,"uuid":"411459","full_name":"zonble/ObjectivePlurk","owner":"zonble","description":"Plurk API implemented with Objective-C","archived":false,"fork":false,"pushed_at":"2010-09-29T05:23:53.000Z","size":161,"stargazers_count":25,"open_issues_count":2,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T18:49:50.472Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://zonble.net","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zonble.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-12-09T15:55:22.000Z","updated_at":"2024-07-14T03:45:45.000Z","dependencies_parsed_at":"2022-08-16T10:45:30.203Z","dependency_job_id":null,"html_url":"https://github.com/zonble/ObjectivePlurk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zonble/ObjectivePlurk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zonble","download_url":"https://codeload.github.com/zonble/ObjectivePlurk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265246229,"owners_count":23734111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-14T19:16:36.888Z","updated_at":"2025-07-14T05:37:28.256Z","avatar_url":"https://github.com/zonble.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ObjectivePlurk\n\nCopyright © 2009-2010 Weizhong Yang. All Rights Reserved.\n\nObjectivePlurk is a Plurk API implemented with Objective-C programming language. It helps you to create a client software for Mac OS X and iPhone OS devices, to read feeds from Plurk, and post new messages and pictures.\n\n## Requirement\n\nI suggest that you are ready to create a new Mac or iPhone application, and you already had required environment for software development such as a Macintosh computer with an Intel CPU which is running Leopard or Snow Leopard operating system, and Xcode. What you still need includes,\n\n1. A Plurk API key. You can obtain one from the [Plurk API page](http://www.plurk.com/API). Go visit the page and fill the registration form, Plurk will send your API key to your email address.\n\n2. Libraries the project depends on, including\n\t* [LFWebAPIKit](http://github.com/lukhnos/LFWebAPIKit/), I use it to work with HTTP request stuffs.\n\t* [bsjsonadditions](http://github.com/blakeseely/bsjsonadditions), I use it to parse JSON datas.\n\n## How to Use It\n\nCheckout all required source code and the dependency, create a new project with Xcode, add all the files to your Xcode project file, and add required frameworks such as ``CFNetwork``, ``SystemConfiguration``, ``MobileCoreServices`` and so on. Now, let us start coding.\n\nAfter adding a new NSObject subclass, the first thing you should do is to include ``ObjectivePlurk`` to your header file.\n\n\t#import \"ObjectivePlurk.h\"\n\nObjectivePlurk has a singleton instance, it will be instantiated after the first time to call ``[ObjectivePlurk sharedInstance]``. The first thing to do with the shared instance, is to assign your API key to it. Without assigning an API key the library can do nothing at all. Select a proper place to do it after your application is initiated, implementing with the ``applicationDidFinishLaunching:`` delegate method of ``NSApplication`` or ``UIApplicaiton`` should be fine.\n\n\t[ObjectivePlurk sharedInstance].APIKey = @\"MY API KEY\";\n\nNow we can try to login Plurk. Just call ``loginWithUsername:password:delegate:userInfo:`` with your username, password, and a delegate object.\n\n\t[[ObjectivePlurk sharedInstance] loginWithUsername:@\"zonble\" password:@\"abcd1234\" delegate:self userInfo:nil];\n\nImplement the following two delegate methods in your class. If you are successfully logged in, ``plurk:didLoggedIn:`` will be called and it will return the result fetched from the Plurk API. Otherwise, ``plurk:didFailLoggingIn`` will be called, and it will give you an NSError object to tell you what was wrong.\n\n\t- (void)plurk:(ObjectivePlurk *)plurk didLoggedIn:(NSDictionary *)result;\n\t- (void)plurk:(ObjectivePlurk *)plurk didFailLoggingIn:(NSError *)error;\n\nThen we can try read the timeline by calling ``retrieveMessagesWithDateOffset:limit:user:isResponded:isPrivate:delegate:userInfo:``, or do other things we would like to do.\n\nIf you want to logout Plurk, just call ``logout``, and you can know if you are logged in by calling the ``loggedIn`` property.\n\n## Multiple API Calls\n\nYou can call an instance of ObjectivePlurk to do more than one task simultaneously. The tasks will be scheduled into a queue, and they will be done one by one. You can cancel all tasks in the queue by calling the ``cancelAllRequest`` method. The design is not very efficient if you have a fast Internet connection, but it works on some limited devices such as iPhone.\n\nOn the other hand, you may not want to cancel all the tasks but just part of them. You can cancel all the tasks assigned a specified delegate object by calling ``cancelAllRequestWithDelegate:``. The method should be useful when you want to release your delegate object and ask ObjectivePlurk not to send messages to it, in order to avoid bad access exceptions.\n\n\n## Contact\n\nFeel free to write me a message via GitHub's mail system, or write to zonble {at} gmail {dot} com. I can read and write English an Chinese.\n\n## License\n\nThe project is released under New BSD License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzonble%2Fobjectiveplurk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzonble%2Fobjectiveplurk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzonble%2Fobjectiveplurk/lists"}