TGMetaWeblogApi 0.1.0

TGMetaWeblogApi 0.1.0

测试已测试
语言语言 Objective-CObjective C
许可证 MIT
发布最后发布2015年7月

Terwer Green维护。



 
依赖
AFNetworking~> 2.5.1
wpxmlrpc~> 0.7
 

  • 作者
  • Terwer Green

适用于 OS X 和 iOS 的简单 MetaWeblog Api,用 Objective-C 编写。

版本

版本:V0.9

开发工具:XCode 版本 7.0 测试版 (7A121l) iOS7.0+

开发环境:Mac Pro OS X Yosemite 10.10.4

作者:Terwer Green

作者博客:http://www.terwer.com

作者电子邮件: [email protected]

支持的博客和涵盖的 API

当前支持的博客

WordpressZBlog、Cnblogs、OSChina、163、51CTO、Sina

当前支持的 API

metaWeblog.getRecentPosts

metaWeblog.getUsersBlogs

metaWeblog.getPost

metaWeblog.getCategories

metaWeblog.newPost

metaWeblog.editPost

metaWeblog.deletePost

有关更多详细信息,请参阅 https://gist.github.com/terwer/7acc30a460e3ef671415

开始

Podfile

platform :ios, '7.0'
pod 'TGMetaWeblogApi', '~> 0.1'

用法

1. 添加 Podfile 并运行 pod install

2. 导入头文件

#import "TGMetaWeblogApi.h"

3. 调用 API,例如

请参阅 示例项目以获取更多详细信息。

身份验证示例

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    //处理登录
    //wordpress
    [self doLogin:[NSURL URLWithString:@"http://www.xxx.com/"] andUsername:@"user" andPassword:@"pwd"];
}

//使用xmlrpcURL登录
-(void)doLogin:(NSURL *)xmprpcURL andUsername:(NSString *)username andPassword:(NSString *)password{
    // Sign in
    [TGMetaWeblogAuthApi signInWithURL:[xmprpcURL absoluteString]
                              username:username
                              password:password
                               success:^(NSURL *xmlrpcURL) {
                                   NSLog(@"success:%@",xmlrpcURL);
                                   NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
                                   [def setObject:[xmlrpcURL absoluteString] forKey:@"mw_xmlrpc"];
                                   [def setObject:username forKey:@"mw_username"];
                                   [def setObject:password forKey:@"mw_password"];
                                   [def synchronize];
                                   //跳转
                                   //下面是nil
                                   //UIStoryboard *storyboard = self.storyboard;
                                   UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
                                   MasterNavViewController *masterNavController=[storyboard instantiateViewControllerWithIdentifier:@"MasterNavViewController"];
                                   [self presentViewController:masterNavController animated:YES completion:nil];

                               }
                               failure:^(NSError *error) {
                                   UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
                                   [alert show];
                               }];



获取 RecentPost 示例

- (BOOL)setupApi {
    if (self.api == nil) {
        NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
        NSString *xmlrpc = [def objectForKey:@"mw_xmlrpc"];
        if (xmlrpc) {
            NSString *username = [def objectForKey:@"mw_username"];
            NSString *password = [def objectForKey:@"mw_password"];
            if (username && password) {
                self.api = [TGMetaWeblogAuthApi apiWithXMLRPCURL:[NSURL URLWithString:xmlrpc] username:username password:password];
            }
        }

    }

    //api初始化成功
    if (self.api) {
         return YES;
    }else{
        return NO;
    }
}

- (void)refreshPosts:(id)sender {
    [self.api getRecentPosts:10
                     success:^(NSArray *posts) {
                         NSLog(@"We have %lu posts", (unsigned long) [posts count]);
                         self.posts = posts;
                         [self.tableView reloadData];
                     }
                     failure:^(NSError *error) {
                         NSLog(@"Error fetching posts: %@", [error localizedDescription]);
                     }];
}

- (void) insertNewObject:(id)sender{
    NSLog(@"insert");
}

如果您有任何问题,请在此创建 问题 或通过电子邮件联系我:mailto:[email protected].

通知

该项目仍在开发中,尚未完成。如果您对项目感兴趣,请创建 pull request。