iOS Line 接入

近日接到需求,需要接入Line登录分享,当时一愣,Line是个什么东西,网上一查,才发现自己是多么的落后,竟然不知道Line,Line中文名是连我,是和Facebook、微信、QQ类似的社交。

既然有这个需求,那没办法,只能硬着头皮去搞了,之前接过FaceBook的登录分享邀请等,所以对国外的SDK接入感觉也不会太难,可是我错了,Line接入真的不是那么一帆风顺,很多坑

下载Line需要搞个国外的AppId,不然国内是搜索不到Line下载的

需要连接VPN下载登录

首先,进入Line开发者中心  Line官网 注册  拿到 Channel ID 和 Channel Secret

Line SDK下载位置:如下图:


进入下图位置,即 iOS Line接入开发文档


根据文档进行环境配置等,

注意事项:

注册监听时,根据文档会有问题,当客户端没有安装Line时会走web登录,所以需要添加一个多监听一个web登录回调:(这个坑了我两天,web登录一直没回调,后面自己去Line添加的库里面找,找到很多字段一个个监听,终于找到下面这个监听才能监听到web登录结果)

//只有添加了这个监听,在没安装Line的情况下,web登录才会有回调

[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(lineAdapterAuthorizationDidChange:) name:LineAdapterUserApprovalDidFinishNotification object:nil];

Line分享只能分享文字或者图片:(分享只有在安装Line的情况下才可用

//是否有安装Line

- (BOOL)canShareToLine

{

return[[UIApplicationsharedApplication]canOpenURL:[NSURLURLWithString:@"line://"]];

}

//分享文字   

- (void)shareText:(NSString*)text

{

if( [selfcanShareToLine] ) {

NSString*contentKey = (__bridgeNSString*)CFURLCreateStringByAddingPercentEscapes(NULL,

(CFStringRef)text,

NULL,

(CFStringRef)@"!*'();:@&=+$,/?%#[]",

kCFStringEncodingUTF8);

NSString*contentType =@"text";

NSString*urlString = [NSStringstringWithFormat:@"line://msg/%@/%@",

contentType, contentKey];

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlString]];

}

}

//分享图片

- (void)shareImage:(NSString*)imageUrl

{

if( [selfcanShareToLine] ) {

UIPasteboard*pasteboard = [UIPasteboardpasteboardWithUniqueName];

NSString*pasteboardName = pasteboard.name;

NSURL*imageURL = [NSURLURLWithString:imageUrl];

[pasteboardsetData:UIImagePNGRepresentation([UIImageimageWithData:[NSDatadataWithContentsOfURL:imageURL]])forPasteboardType:@"public.png"];

NSString*contentType =@"image";

NSString*contentKey = (__bridgeNSString*)CFURLCreateStringByAddingPercentEscapes(NULL,

(CFStringRef)pasteboardName,

NULL,

CFSTR(":/?=,!$&'()*+;[]@#"),

CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));

NSString*urlString = [NSStringstringWithFormat:@"line://msg/%@/%@",

contentType, contentKey];

[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:urlString]];

}

登录成功之后,获取Line用户信息:

- (void)tryApi

{

[[adaptergetLineApiClient]getMyProfileWithResultBlock:^(NSDictionary*aResult,NSError*aError)

{

if(aResult)

  NSString*openId = aResult[@"mid"];//Line用户ID

  NSString*nickName = aResult[@"displayName"];//Line用户昵称

  NSString*imageUrl = aResult[@"pictureUrl"];//Line用户头像url

  //在Line头像url后加上 @"/large" 代表取的是 200X200 的大图,加@“/small”代表取的是51X51的小图

   NSString*image = [NSStringstringWithFormat:@"%@%@", imageUrl,@"/large"];

 }


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这几天接facebook登录分享邀请等功能 facebook 开发者中心网址:https://developers...
    曾令伟阅读 6,087评论 2 1
  • 1、禁止手机睡眠 [UIApplicationsharedApplication].idleTimerDisabl...
    小热狗阅读 926评论 0 2
  • 1.不可变数组转变为可变数组声明实例变量的数组 必须记得实现 对于遍历数组找到对象后 如果还需要查找 记得先结束 ...
    小新xin阅读 754评论 0 1
  • 技术原理: 在iOS开发中可以使用openUrl的方式打开一个网页,并通过Safari浏览器的发送到主屏幕从而创建...
    碌卡_阅读 2,014评论 0 1
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,595评论 28 53