创建发送Objective-C是从Cocoa及Cocoa Touch应用程序与Campaign Monitor API进行通信的库。它支持iOS 5.0+及Mac OS X 10.7+
一个示例项目包含在$SRCROOT/Example/CreateSendExample/CreateSendExample.xcodeproj
中。借助来自Itty Bitty Apps的IBAForms,CreateSendExample
演示了展示一个订阅Campaign Monitor列表的表单。
在构建和运行CreateSendExample
之前,您需要在CSExampleAppDelegate.m
中指定您的API密钥。
提供的CSSubscriptionFormViewController
类可以展示一个带有姓名和电子邮件地址的简单表单,或显示为订阅列表配置的自定义字段。在CSExampleAppDelegate.m
中设置customFieldBehavior
变量为CSExampleAppCustomFieldBehavior
中指定的任何值以配置表单为固定字段或动态字段模式。
如果您更喜欢自行构建自定义UI,可以直接使用API包装器。有关API包装器的完整文档,请在Documentation/html/index.html
中查看类文档(用rake docs:generate
生成)。
以下是几个入门示例。
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;
}
作为使用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);
}];
请查看本存储库的贡献指南。
请查看发布此库的说明。