iOS Line 接入

近日接到需求,需要接入Line登錄分享,當時一愣,Line是個什么東西,網(wǎng)上一查,才發(fā)現(xiàn)自己是多么的落后,竟然不知道Line,Line中文名是連我,是和Facebook、微信、QQ類似的社交。

既然有這個需求,那沒辦法,只能硬著頭皮去搞了,之前接過FaceBook的登錄分享邀請等,所以對國外的SDK接入感覺也不會太難,可是我錯了,Line接入真的不是那么一帆風順,很多坑

下載Line需要搞個國外的AppId,不然國內(nèi)是搜索不到Line下載的

需要連接VPN下載登錄

首先,進入Line開發(fā)者中心? Line官網(wǎng) 注冊? 拿到 Channel ID 和?Channel Secret

Line SDK下載位置:如下圖:


進入下圖位置,即 iOS Line接入開發(fā)文檔


根據(jù)文檔進行環(huán)境配置等,

注意事項:

注冊監(jiān)聽時,根據(jù)文檔會有問題,當客戶端沒有安裝Line時會走web登錄,所以需要添加一個多監(jiān)聽一個web登錄回調(diào):(這個坑了我兩天,web登錄一直沒回調(diào),后面自己去Line添加的庫里面找,找到很多字段一個個監(jiān)聽,終于找到下面這個監(jiān)聽才能監(jiān)聽到web登錄結(jié)果)

//只有添加了這個監(jiān)聽,在沒安裝Line的情況下,web登錄才會有回調(diào)

[[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"];

?}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容