iOS SDK

Github repository: ok-ios-sdk

iOS application with OK SDK example: ok-ios-sdk-examples

iOS SDK to authorize users via client authorization, publish new posts, invite friends to a game, send notifications and invoke REST methods.

Before using SDK you need to be sure everything is configured correctly for your app:

  • iOS platform is added to your app’s platforms list;
  • client authorization is enabled;
  • redirect_uri ok{APP_ID}://authorize is added to redirect_uri’s list;
  • application has all required API permissions. It is recommended to have LONG_ACCESS_TOKEN permission enabled for native apps.

To enable SDK do the following:

  • add SDK files to the project, i.e. as git submodule
  • update Info.plist according to the example
    • add ok{APP_ID} and okauth schemes
    • add following code block
  <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
	
  • update didFinishLaunchingWithOptions method in AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    OKSDKInitSettings *settings = [OKSDKInitSettings new];
    settings.appKey = @"{APP_KEY}";
    settings.appId = @"{APP_ID}";
    settings.controllerHandler = ^{
        return self.window.rootViewController;
    };
    [OKSDK initWithSettings: settings];
    return YES;
}
  • add method openURL to AppDelegate
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    [OKSDK openUrl:url];
    return YES;
}

SDK usage example

Authorization (authorizeWithPermissions):

[OKSDK authorizeWithPermissions:@[@"VALUABLE_ACCESS",@"LONG_ACCESS_TOKEN"] 
	success:^(id data) {} 
	error:^(NSError *error) {}
];

REST method invocation (invokeMethod):

[OKSDK invokeMethod:@"METHOD_NAME" arguments:@{} 
	success:^(NSDictionary* data) {} 
	error:^(NSError *error) {}
];

Publish / invite / suggest widgets (showWidget):

[OKSDK showWidget:@"WidgetMediatopicPost" arguments:@{@"st.attachment":@"{\"media\":[{\"type\":\"text\",\"text\":\"hello world!\"}]}"} options:@{@"st.utext":@"on"} 
	success:^(NSDictionary *data) {} 
	error:^(NSError *error) {}
];

[OKSDK showWidget:@"WidgetInvite" arguments:@{} options:@{} 
	success:^(NSDictionary *data) {} 
	error:^(NSError *error) {}
];

[OKSDK showWidget:@"WidgetSuggest" arguments:@{} options:@{} 
	success:^(NSDictionary *data) {} 
	error:^(NSError *error) {}
];