博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抖音的分享和授权(iOS)
阅读量:6224 次
发布时间:2019-06-21

本文共 3535 字,大约阅读时间需要 11 分钟。

准备工作

注册appkey (抖音开放平台)

集成sharesdk(下载地址)

Xcode配置:urlScheme为注册的appkey, 白名单:douyinsharesdk ,douyinopensdk

业务代码

初始化

#import <ShareSDK/ShareSDK.h>

[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) { //抖音 [platformsRegister setupDouyinByAppKey:@"app_key" appSecret:@"app_secret"]; }];

分享

可以分享图片,相册图片,单个视频,多个视频

分享图片

// 通用参数设置----图片分享可以使用相册地址、沙盒路径、网络图片地址

NSString *imageURL = @""; NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters SSDKSetupShareParamsByText:nil images:@[imageURL] url:nil title:nil type:SSDKContentTypeImage];

[ShareSDK share:SSDKPlatformTypeDouyin parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { if (state == SSDKResponseStateSuccess) { NSLog(@"成功!"); }else{ NSLog(@"%@",error); } }];

分享视频

// 通用参数设置----视频分享可以使用相册地址、沙盒路径,不支持网络视频,如果使用网络视频请先下载放到沙盒目录下或相册里

NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"cat" ofType:@"mp4"];NSMutableDictionary *parameters = [NSMutableDictionary dictionary];[parameters SSDKSetupShareParamsByText:nil                                images:nil                                   url:[NSURL URLWithString:videoPath]                                 title:nil                                  type:SSDKContentTypeVideo];                                  [ShareSDK share:SSDKPlatformTypeDouyin parameters:parameters onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {    if (state == SSDKResponseStateSuccess) {        NSLog(@"成功!");    }else{        NSLog(@"%@",error);    }}];复制代码

分享多个视频

// 平台定制----只能使用相册且使用相册标识localIdentifier __block NSMutableArray *assetLocalIds = [NSMutableArray array]; __weak typeof(self) weakSelf = self;

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{        NSURL *url_1 = [[NSBundle mainBundle] URLForResource:@"cat" withExtension:@"mp4"];    NSURL *url_2 = [[NSBundle mainBundle] URLForResource:@"cat" withExtension:@"mp4"];        PHAssetChangeRequest *req_1 = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:url_1];    NSString *localId_1 = req_1.placeholderForCreatedAsset.localIdentifier;    [assetLocalIds addObject:localId_1];        PHAssetChangeRequest *req_2 = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:url_2];    NSString *localId_2 = req_2.placeholderForCreatedAsset.localIdentifier;    [assetLocalIds addObject:localId_2];    } completionHandler:^(BOOL success, NSError * _Nullable error) {    if (success) {        dispatch_async(dispatch_get_main_queue(), ^{            NSMutableDictionary *parameters = [NSMutableDictionary dictionary];            [parameters SSDKSetupDouyinParamesByAssetLocalIds:assetLocalIds type:SSDKContentTypeVideo];                        [ShareSDK share:SSDKPlatformTypeDouyin parameters:parameters onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) {                if (state == SSDKResponseStateSuccess) {                    NSLog(@"成功!");                }else{                    NSLog(@"%@",error);                }            }];        });    }}];复制代码

授权 [ShareSDK authorize:SSDKPlatformTypeDouyin settings:nil onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) { if (state == SSDKResponseStateSuccess) { NSLog(@"%@",[user.credential rawData]); NSLog(@"%@",user.rawData);

}    else    {        NSLog(@"%@",error);    }}];复制代码

转载于:https://juejin.im/post/5cdbd1aaf265da038f776657

你可能感兴趣的文章
解析世界杯超大规模直播场景下的码率控制
查看>>
聊聊BOM的那些事
查看>>
Xamarin 学习笔记 - Page(页面)
查看>>
JavaScript中的函数个人分享
查看>>
Promise A+ 中文翻译
查看>>
FPGA加速:面向数据中心和云服务的探索和实践
查看>>
利用Object.prototype.toString.call()来进行类型检验
查看>>
如何在Vue里建立长按指令
查看>>
vue分析之template模板解析AST
查看>>
26自学转行前端(写给和1年前一样迷茫的我的你)
查看>>
机器学习实战_集成学习(一)
查看>>
重构-改善既有代码的设计(七)-- 在代码之间搬移特性
查看>>
如果连铁将军都不再可靠--记一次排查使用分布式轮候锁+SESSION防订单重复仍然加锁失效问题经历...
查看>>
嵌入式linux系统的开发——SDK环境的应用
查看>>
什么是以太坊?什么是智能合约?
查看>>
利用Python实现卷积神经网络的可视化
查看>>
【译】Java、Kotlin、RN、Flutter 开发出来的 App 大小,你了解过吗?
查看>>
你不得不知的Event Loop
查看>>
canvas 时钟
查看>>
clipboard.js代码分析(3)- good-listener
查看>>