创建发送 1.1.1

创建发送 1.1.1

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

未声明维护。



  • 作者:
  • Nathan de Vries、Jonathan Younger和James Dennes

创建发送Objective-C

创建发送Objective-C是从Cocoa及Cocoa Touch应用程序与Campaign Monitor API进行通信的库。它支持iOS 5.0+及Mac OS X 10.7+

功能

  • 实现API的完整功能。
  • 提供一个UI来添加新订阅者到您的列表,并支持自定义字段。

示例项目

一个示例项目包含在$SRCROOT/Example/CreateSendExample/CreateSendExample.xcodeproj中。借助来自Itty Bitty AppsIBAFormsCreateSendExample演示了展示一个订阅Campaign Monitor列表的表单。

在构建和运行CreateSendExample之前,您需要在CSExampleAppDelegate.m中指定您的API密钥。

提供的CSSubscriptionFormViewController类可以展示一个带有姓名和电子邮件地址的简单表单,或显示为订阅列表配置的自定义字段。在CSExampleAppDelegate.m中设置customFieldBehavior变量为CSExampleAppCustomFieldBehavior中指定的任何值以配置表单为固定字段或动态字段模式。

基本的API包装器使用示例

如果您更喜欢自行构建自定义UI,可以直接使用API包装器。有关API包装器的完整文档,请在Documentation/html/index.html中查看类文档(用rake docs:generate生成)。

以下是几个入门示例。

使用OAuth 2进行认证

Campaign Monitor API支持使用OAuth 2或通过基本认证的API密钥进行认证。使用OAuth 2建议。有关详细资料,请参阅API文档

以下是使用此库进行OAuth 2认证的推荐方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    API = [[CSAPI alloc] initWithClientID:@"CLIENT_ID" clientSecret:@"CLIENT_SECRET" scope:@[CSAPIClientScopeManageLists, CSAPIClientScopeImportSubscribers]];
    if (!API.isAuthorized) {
        [API authorize];    
    }
}

一旦授权,您的应用将使用URL方案csapiCLIENT_ID启动。注册此方案的最简单方法是右键单击您的应用程序的plist文件,选择“以源代码方式打开”,然后在第一个<dict>标签下方添加以下代码,用应用程序的客户ID替换CLIENT_ID

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>csapiCLIENT_ID</string>
        </array>
    </dict>
</array>

现在您的应用程序已注册了正确的方案,您需要将以下代码添加到您的应用程序代理中,以完成授权流程

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    if ([API handleOpenURL:url]) {
        if (API.isAuthorized) {
            NSLog(@"App has been authorized successfully!");
            // At this point you can start making API calls
        }
        return YES;
    }
    // Add whatever other url handling code your app requires here
    return NO;
}

获取API密钥

作为使用OAuth 2进行认证的替代方案,您还可以使用API密钥。

以下是使用此库获取API密钥的方法。

CSAPI *API = [[CSAPI alloc] init];

[API getAPIKeyWithSiteURL:@"http://yoursite.createsend.com/" username:@"yourusername" password:@"yourpassword" completionHandler:^(NSString *APIKey) {
    NSLog(@"Your API key is %@", APIKey);
} errorHandler:^(NSError *error) {
    NSLog(@"Something went wrong: %@", error);
}];

订阅列表

以下是一个如何订阅列表的示例(使用API密钥进行认证,而不是OAuth)。

CSAPI *API = [[CSAPI alloc] initWithAPIKey:@"ab6b0598d32fecd63485b18abb4f0ad7"];

NSArray *customFields = @[
    [CSCustomField customFieldWithKey:@"AddressStreet" value:@"1 Infinite Loop"],
    [CSCustomField customFieldWithKey:@"AddressSuburb" value:@"Cupertino"]
];

[API subscribeToListWithID:@"66f889ae2e1981157285b4f76f2e02ad"
              emailAddress:@"[email protected]"
                      name:@"Johnny Appleseed"
         shouldResubscribe:YES
              customFields:customFields
         completionHandler:^(NSString *subscribedAddress) {
            NSLog(@"Successfully subscribed %@", subscribedAddress);
         } errorHandler:^(NSError *error) {
            NSLog(@"Something went wrong: %@", error);
         }];

贡献

请查看本存储库的贡献指南

发布

请查看发布此库的说明