diff --git a/data/core.telegram.org/passport/sdk-ios-mac.html b/data/core.telegram.org/passport/sdk-ios-mac.html new file mode 100644 index 0000000000..05aa14d5ed --- /dev/null +++ b/data/core.telegram.org/passport/sdk-ios-mac.html @@ -0,0 +1,246 @@ + + + + + iOS & macOS SDK + + + + + + + + + + + + + +
+ +
+
+
+ +

iOS & macOS SDK

+ +
+ +

TGPassportKit helps you easily integrate Telegram Passport requests into your iOS & macOS apps. Check out our GitHub repository to see samples using this SDK.

+

Installation

+

Installing using Cocoapods

+

To install TGPassportKit via Cocoapods add the following to your Podfile:

+
target 'MyApp' do
+  pod 'TGPassportKit' 
+end
+

then run pod install in your project root directory.

+

Installing using Carthage

+

Add the following line to your Cartfile:

+
github "telegrammessenger/TGPassportKit"
+

then run carthage update, and you will get the latest version of TGPassportKit in your Carthage folder.

+

Project Setup

+

Configure Your Info.plist

+

Configure your Info.plist by right-clicking it in Project Navigator, choosing Open As > Source Code and adding this snippet: +Replace {bot_id} with your value

+
<key>CFBundleURLTypes</key>
+<array>
+  <dict>
+  <key>CFBundleURLSchemes</key>
+  <array>
+    <string>tgbot{bot_id}</string>
+  </array>
+  </dict>
+</array>
+<key>LSApplicationQueriesSchemes</key>
+<array>
+  <string>tg</string>
+</array>
+

Connect AppDelegate methods

+

Add this code to your UIApplicationDelegate implementation

+
#import <TGPassportKit/TGPAppDelegate.h>
+
+- (BOOL)application:(UIApplication *)application
+            openURL:(NSURL *)url
+            options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {
+    BOOL handledByPassportKit = [[TGPAppDelegate sharedDelegate] application:application
+                                                                     openURL:url
+                                                                     options:options];
+
+    return YES;
+}
+

If you support iOS 9 and below, also add this method:

+
- (BOOL)application:(UIApplication *)application 
+            openURL:(NSURL *)url 
+  sourceApplication:(nullable NSString *)sourceApplication 
+         annotation:(id)annotation {
+    BOOL handledByPassportKit = [[TGPAppDelegate sharedDelegate] application:application
+                                                                     openURL:url
+                                                           sourceApplication:sourceApplication
+                                                                  annotation:annotation];
+
+    return YES;
+}
+

Usage

+

Add Telegram Passport Button

+

To add the Telegram Passport button, add the following code to your view controller: +Replace {bot_id}, {bot_public_key} and {request_nonce} with your values

+
#import <TGPassportKit/TGPButton.h>
+
+@interface ViewController <TGPButtonDelegate>
+
+@end
+
+@implementation ViewController
+
+- (void)viewDidLoad {
+  [super viewDidLoad];
+
+  TGPButton *button = [[TGPButton alloc] init];
+  button.botConfig = [[TGPBotConfig alloc] initWithBotId:{bot_id} 
+                                               publicKey:@"{bot_public_key}"];
+  button.scope = [[TGPScope alloc] initWithJSONString:@"{\"data\":[\"id_document\",\"address_document\",\"phone_number\"],\"v\":1}"];
+// You can also construct a scope using provided data type classes like this: 
+// button.scope = [[TGPScope alloc] initWithTypes:@[[[TGPPersonalDetails alloc] init], [[TGPIdentityDocument alloc] initWithType:TGPIdentityDocumentTypePassport selfie:true translation:true]]];
+  button.nonce = @"{request_nonce}";
+  button.delegate = self;
+  [self.view addSubview:button];
+}
+
+- (void)passportButton:(TGPButton *)passportButton 
+ didCompleteWithResult:(TGPRequestResult)result 
+                 error:(NSError *)error {
+    switch (result) {
+        case TGPRequestResultSucceed:
+            NSLog(@"Succeed");
+            break;
+
+        case TGPRequestResultCancelled:
+            NSLog(@"Cancelled");
+            break;
+
+        default:
+            NSLog(@"Failed");
+            break;
+    }
+}
+
+@end
+

...or Implement Your Own Behavior

+

If you want to design a custom UI and behavior, you can invoke a Passport request like this: +Replace {bot_id}, {bot_public_key} and {request_nonce} with your values

+
#import <TGPassportKit/TGPRequest.h>
+
+- (void)performPassportRequest 
+{
+    TGPBotConfig *botConfig = [[TGPBotConfig alloc] initWithBotId:{bot_id} 
+                                                        publicKey:@"{bot_public_key}"];
+    TGPRequest *request = [[TGPRequest alloc] initWithBotConfig:botConfig];
+    [request performWithScope:[[TGPScope alloc] initWithJSONString:@"{\"data\":[\"id_document\",\"phone_number\"],\"v\":1}"] 
+                      payload:@"{request_nonce}" 
+            completionHandler:^(TGPRequestResult result, NSError * _Nullable error) {
+        switch (result) {
+            case TGPRequestResultSucceed:
+                NSLog(@"Succeed");
+                break;
+
+            case TGPRequestResultCancelled:
+                NSLog(@"Cancelled");
+                break;
+
+            default:
+                NSLog(@"Failed");
+                break;
+        }
+    }];
+}
+ +
+ +
+
+ +
+ + + + + + + + diff --git a/data/telegram.org/apps.html b/data/telegram.org/apps.html index 40ad18a42c..8393fd99d1 100644 --- a/data/telegram.org/apps.html +++ b/data/telegram.org/apps.html @@ -65,8 +65,8 @@

Web apps

Telegram Database Library (TDLib)