ChimpKit 3.1.1

ChimpKit 3.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最后发布2014年12月

Drew Conner 维护。



ChimpKit 3.1.1

  • Drew Conner

ChimpKit 3.1.1

ChimpKit 是 MailChimp API 2.0 的 API 包装器。

要求

需要一个 MailChimp 账户和 API 密钥。您可以在 这里 查看 API 密钥。

ChimpKit 包括对 ARC 的使用。如果您的项目不使用 ARC,您可以使用 Xcode 中项目目标的“构建阶段”和“编译源”下的 -fobjc-arc 编译器标志为每个文件启用它。

安装

有两种方式可以将 ChimpKit 添加到您的项目中

或使用 Git 子模块。通过执行类似以下操作将 ChimpKit 添加为git仓库的子模块

cd myrepo
git submodule add https://github.com/mailchimp/ChimpKit3.git Libs/ChimpKit

现在通过将 ChimpKit3 目录中的所有内容拖拽到您的项目中添加 ChimpKit 到您的项目中。

使用方法

首先,设置一个 API 密钥

[[ChimpKit sharedKit] setApiKey:apiKey];

现在您可以进行请求。例如,下面是如何订阅电子邮件地址的示例

使用块

NSDictionary *params = @{@"id": listId, @"email": @{@"email": @"[email protected]"}, @"merge_vars": @{@"FNAME": @"Freddie", @"LName":@"von Chimpenheimer"}};
[[ChimpKit sharedKit] callApiMethod:@"lists/subscribe" withParams:params andCompletionHandler:^(ChimpKitRequest *request, NSError *error) {
    NSLog(@"HTTP Status Code: %d", request.response.statusCode);
    NSLog(@"Response String: %@", request.responseString);

    if (error) {
       //Handle connection error
        NSLog(@"Error, %@", error);
        dispatch_async(dispatch_get_main_queue(), ^{
            //Update UI here
        });
    } else {
        NSError *parseError = nil;
        id response = [NSJSONSerialization JSONObjectWithData:request.responseData
                                                      options:0
                                                        error:&parseError];
        if ([response isKindOfClass:[NSDictionary class]]) {
            id email = [response objectForKey:@"email"];
            if ([email isKindOfClass:[NSString class]]) {
                //Successfully subscribed email address
                dispatch_async(dispatch_get_main_queue(), ^{
                    //Update UI here
                });
            }
        }
    }
}];

使用代理模式

NSDictionary *params = @{@"id": listId, @"email": @{@"email": @"[email protected]"}, @"merge_vars": @{@"FNAME": @"Freddie", @"LName":@"von Chimpenheimer"}};
[[ChimpKit sharedKit] callApiMethod:@"lists/subscribe" withParams:params andDelegate:self];

并实现 ChimpKitRequestDelegate 协议

- (void)ckRequestSucceeded:(ChimpKitRequest *)aRequest {
    NSLog(@"HTTP Status Code: %d", aRequest.response.statusCode);
    NSLog(@"Response String: %@", aRequest.responseString);

    NSError *parseError = nil;
    id response = [NSJSONSerialization JSONObjectWithData:request.responseData
                                                  options:0
                                                    error:&parseError];
    if ([response isKindOfClass:[NSDictionary class]]) {
        id email = [response objectForKey:@"email"];
        if ([email isKindOfClass:[NSString class]]) {
            //Successfully subscribed email address
            dispatch_async(dispatch_get_main_queue(), ^{
                //Update UI here
            });
        }
    }
}

- (void)ckRequestFailed:(ChimpKitRequest *)aRequest andError:(NSError *)anError {
    //Handle connection error
    NSLog(@"Error, %@", anError);
    dispatch_async(dispatch_get_main_queue(), ^{
        //Update UI here
    });
}

调用其他 API 端点的方式类似。请参阅 API 文档 了解详细信息。

块和代理方法可以从后台队列中调用

上述示例使用 dispatch_async 在解析响应后在主队列上回调。如果您已将 shouldUseBackgroundThread 设置为 YES,则 ChimpKit 将从后台队列中调用您的块,这样您可以以最少的界面响应影响解析 JSON 响应。您应该将 dispatch_* 回到主队列,如上例所示,在更新 UI 之前。您可以通过以下方式启用此行为

[[ChimpKit sharedKit] setShouldUseBackgroundThread:YES];

控制超时

ChimpKit 默认超时时间为 10 秒。您可以将(全局)它更改为 30 秒,如下所示

[[ChimpKit sharedKit] setTimeoutInterval:30.0f];

MailChimp 现在支持OAuth2,ChimpKit 也支持

示例应用程序中提供了通过 OAuth 登录的示例。请参阅 ViewController.m

版权

  • 版权(c)2010-2014 The Rocket Science Group。请参阅 LICENSE.txt 以获取详细信息。
  • MailChimp (c)2001-2014 The Rocket Science Group。