{"id":22962361,"url":"https://github.com/zonble/objectiveplurk2","last_synced_at":"2025-06-27T03:33:08.810Z","repository":{"id":66712663,"uuid":"1662756","full_name":"zonble/ObjectivePlurk2","owner":"zonble","description":"ObjectivePlurk2","archived":false,"fork":false,"pushed_at":"2012-11-23T11:06:16.000Z","size":164,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-07T18:18:03.209Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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":"2011-04-26T02:17:01.000Z","updated_at":"2013-11-21T18:52:05.000Z","dependencies_parsed_at":"2023-02-20T09:45:46.190Z","dependency_job_id":null,"html_url":"https://github.com/zonble/ObjectivePlurk2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zonble%2FObjectivePlurk2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zonble","download_url":"https://codeload.github.com/zonble/ObjectivePlurk2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246749104,"owners_count":20827452,"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.641Z","updated_at":"2025-04-02T03:27:57.013Z","avatar_url":"https://github.com/zonble.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ObjectivePlurk\n\nCopyright © 2009-2012 Weizhong Yang. All Rights Reserved.\n\nObjectivePlurk is a Plurk API implemented with Objective-C programming\nlanguage. It helps you to create a client software for Mac OS X and\niPhone OS devices, to read feeds from Plurk, and post new messages and\npictures.\n\n## Requirement\n\nI suggest that you are ready to create a new Mac or iPhone\napplication, and you already had required environment for software\ndevelopment such as a Macintosh computer with an Intel CPU which is\nrunning Leopard or Snow Leopard operating system, and Xcode. What you\nstill need includes,\n\n1. A Plurk API key. You can obtain one from the\n[Plurk API page](http://www.plurk.com/API). Go visit the page and fill\nthe registration form, Plurk will send your API key to your email\naddress.\n\n2. Libraries the project depends on, including\n\n\t* [LFWebAPIKit](http://github.com/lukhnos/LFWebAPIKit/), I use it\n      to work with HTTP request stuffs.\n\t* [bsjsonadditions](http://github.com/blakeseely/bsjsonadditions),\n      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\nproject with Xcode, add all the files to your Xcode project file, and\nadd required frameworks such as ``CFNetwork``,\n``SystemConfiguration``, ``MobileCoreServices`` and so on. Now, let us\nstart coding.\n\nAfter adding a new NSObject subclass, the first thing you should do is\nto include ``ObjectivePlurk`` to your header file.\n\n\t#import \"ObjectivePlurk.h\"\n\nObjectivePlurk has a singleton instance, it will be instantiated after\nthe first time to call ``[ObjectivePlurk sharedInstance]``. The first\nthing to do with the shared instance, is to assign your API key to\nit. Without assigning an API key the library can do nothing at\nall. Select a proper place to do it after your application is\ninitiated, implementing with the ``applicationDidFinishLaunching:``\ndelegate method of ``NSApplication`` or ``UIApplicaiton`` should be\nfine.\n\n\t[ObjectivePlurk sharedInstance].APIKey = @\"MY API KEY\";\n\nNow we can try to login Plurk. Just call\n``loginWithUsername:password:delegate:userInfo:`` with your username,\npassword, 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\nsuccessfully logged in, ``plurk:didLoggedIn:`` will be called and it\nwill return the result fetched from the Plurk API. Otherwise,\n``plurk:didFailLoggingIn`` will be called, and it will give you an\nNSError 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\n``retrieveMessagesWithDateOffset:limit:user:isResponded:isPrivate:delegate:userInfo:``,\nor do other things we would like to do.\n\nIf you want to logout Plurk, just call ``logout``, and you can know if\nyou 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\nsimultaneously. The tasks will be scheduled into a queue, and they\nwill be done one by one. You can cancel all tasks in the queue by\ncalling the ``cancelAllRequest`` method. The design is not very\nefficient if you have a fast Internet connection, but it works on some\nlimited devices such as iPhone.\n\nOn the other hand, you may not want to cancel all the tasks but just\npart of them. You can cancel all the tasks assigned a specified\ndelegate object by calling ``cancelAllRequestWithDelegate:``. The\nmethod should be useful when you want to release your delegate object\nand ask ObjectivePlurk not to send messages to it, in order to avoid\nbad access exceptions.\n\n## Contact\n\nFeel free to write me a message via GitHub's mail system, or write to\nzonble {at} gmail {dot} com. I can read and write English an Chinese.\n\n## License\n\nThe project is released under New BSD License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzonble%2Fobjectiveplurk2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzonble%2Fobjectiveplurk2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzonble%2Fobjectiveplurk2/lists"}