BandsintownAPI 0.1.0

BandsintownAPI 0.1.0

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

未申明 维护。



  • Adam Cumiskey

BandsInTownAPI

为 BandsInTown API 提供Objective-C API包装器(http://www.bandsintown.com/api/overview)。

安装

要安装API,将 BandsintownAPI 文件夹拖到您的项目中,并将所有文件添加到您的目标中。目前也要求 JSONKit。我将在不久的将来添加 Cocoapods 支持,这将使此过程更加合理。

必需:在应用代理中,在 application:didFinishLaunchingWithOptions: 方法中注册您的应用程序名称

#import "MyAppNameDelegate.h"
#import "BandsintownAPI/Bandsintown.h"

@implementation MyAppNameDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [BITAuthManager provideAppName:@"MyAppName"];

    // Override point for customization after application launch.
    return YES;
}

创建请求

请求分为4个类别。

  • 艺术家 请求提供关于艺术家的基本信息和指向Facebook活动页面的链接。
  • 事件 请求提供了特定日期范围内艺术家的所有事件。
  • 事件搜索 请求提供特定日期范围和位置的艺术家的所有事件。
  • 推荐 请求提供与事件搜索相同的信息,但还允许包括推荐艺术家。原始艺术家也可以过滤掉。

艺术家请求

可以使用名称、Music Brainz ID 或 Facebook ID 来查找艺术家。有几个类方法将返回艺术家请求对象。由于它们设计用于仅用于艺术家请求,因此创建后不要修改这些对象。

+ (instancetype)artistRequestForName:(NSString *)artistName;
+ (instancetype)artistRequestForFacebookID:(NSString *)facebookID;
+ (instancetype)artistRequestForMusicBrainzID:(NSString *)mbid;

事件请求

可以在给定的 BITDateRange 中搜索事件。有几个方法可以简化此过程。

+ (instancetype)allEventsForArtist:(BITArtist *)artist;
+ (instancetype)upcomingEventsForArtist:(BITArtist *)artist;
+ (instancetype)eventsForArtist:(BITArtist *)artist
                    inDateRange:(BITDateRange *)dateRange;

要手动在日期范围内搜索艺术家,

// Create artist
BITArtist *artist = [BITArtist artistNamed:@"Tera Melos"];

// Date range for the next 30 days
BITDateRange *dateRange = [BITDateRange dateRangeWithStartDate:[NSDate date]
                                                    andEndDate:[NSDate dateWithTimeIntervalSinceNow:2592000]];

// Create the request
BITRequest *request = [BITRequest eventsForArtist:artist
                                      inDateRange:dateRange];

事件搜索

通过将 BITLocation 添加到事件请求中创建事件搜索。可以使用字符串(在美国和加拿大为城市/州,在其他地方为城市/国家)或使用 CLLocationCoordinate2d 创建 BITLocations。setSearchLocation:andRadius 实例方法很有用,可以将事件请求转换为事件搜索。

  // Create the location
BITLocation *location = [BITLocation locationWithPrimaryString:@"New York"
                                            andSecondaryString:@"NY"];

// Create events request
BITRequest *request = [BITRequest eventsForArtist:[BITArtist artistNamed:@"You Blew It!"]
                                      inDateRange:[BITDateRange upcomingEvents]];

// Add the location to the search
[request setSearchLocation:location
                 andRadius:@150];

推荐搜索

推荐搜索是通过在事件搜索请求上调用实例方法includeRecommendationsExcludingArtist:来创建的。当排除艺术家参数设置为YES时,搜索中的原始艺术家将不会列在结果中。从上一个示例继续

// Only get events from recommended artists
[request includeRecommendationsExcludingArtist:YES];

发送请求数据

要发送请求数据,只需调用[BITRequestManager sendRequest:withCompletionHandler:]方法。响应通过一个代码块返回。如果请求成功,该代码块将有一个BITResponse对象参数。如果请求是为了艺术家,BITResponse的艺术家参数将被设置为API中的数据。所有其他请求将具有BIT事件对象的数组作为事件参数。如果您想手动解析JSON响应,则rawData参数包含解析响应的JSON字符串。

// Send an event request
[BITRequestManager sendRequest:request
         withCompletionHandler:^(BOOL success,
                                 BITResponse *response,
                                 NSError *error) {
             if (!success) {
                 NSLog(@"Error: %@", error.localizedDescription);
             } else {
                 NSLog(@"Raw Data: %@", [response rawResponse]);

                 for (BITEvent *event in [response events]) {
                     NSLog(@"Event Name: %@", [event title]);
                 }
             }
         }];

法律

本作品采用LGPL许可。有关更多信息,请参阅LICENCE.md文件。