Zalo登录

注册前的准备工作
由于国内网络无法直接打开Zalo页面,因此需要一个较稳定的VPN。
创建开发者账号
登录Zalo开发者后台
可以在网页最底部把网页设置为英文

创建自己的应用
1.点击右上角【创建应用】

2.创建好应用后记录Application ID和Application secret key 并点击Log in

3.点击Android,填写Package name(unity包名)、Hash key。
如何获取Hashkey,他这里是需要SHA1,我们可以通过:
1、win+R 打开cmd命令窗口
2、输入命令:keytool -list -v -keystore jks路径地址
3、输入密钥口令

4.得到以下信息

AndroidStudio添加ZaloSDK

1.添加ZaloSDK库以构建gradle
build.gradle文件中添加以下依赖项:
implementation “com.zing.zalo.zalosdk:core:2.6.0329@aar”
implementation “com.zing.zalo.zalosdk:auth:2.6.0329@aar” implementation"com.zing.zalo.zalosdk:openapi:2.6.0329@aar"
:添加@aar是因为AndroidX和Android support有冲突
报错为:

Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
Duplicate class androidx.core.graphics.drawable.IconCompatParcelizer found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
Duplicate class androidx.core.internal.package-info found in modules classes.jar (androidx.core:core:1.0.0) and classes.jar (com.android.support:support-compat:28.0.0)
Duplicate class androidx.versionedparcelable.CustomVersionedParcelable found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.NonParcelField found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.ParcelField found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.ParcelImpl found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.ParcelImpl$1 found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.ParcelUtils found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcel found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcel$1 found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcel$ParcelException found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcelParcel found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcelStream found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcelStream$FieldBuffer found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcelStream$InputBuffer found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcelable found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)
Duplicate class androidx.versionedparcelable.VersionedParcelize found in modules classes.jar (androidx.versionedparcelable:versionedparcelable:1.0.0) and classes.jar (com.android.support:versionedparcelable:28.0.0)

2.AndroidManifest.xml中添加appID
首先先创建一个string.xml


在string.xml里面添加

<string name="appID"> appID(之前获取的Application ID)</string>

然后在AndroidManifest.xml中添加

<!-- Required zalo app id --><meta-dataandroid:name="com.zing.zalo.zalosdk.appID"android:value="@string/appID" />

:需要根据上述说明添加AppID的strings.xml,不能直接在metaData标签中分配appID字符串将导致ZaloSDK无法识别appID错误。

3.在AndroidManifest文件中,添加“应用程序名称”属性

<application android:name="com.zing.zalo.zalosdk.oauth.ZaloSDKApplication" />

如果应用程序具有其自己的Application类,则应用程序的onCreate方法必须调用

public class DemoApplication extends Application {@Overridepublic void onCreate() {super.onCreate();ZaloSDKApplication.wrap(this);}
}

4.在AndroidManifest文件中,添加activity

<activityandroid:name="com.zing.zalo.zalosdk.oauth.BrowserLoginActivity"><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="zalo-appID(之前获取的Application ID)" /></intent-filter>
</activity>

5.为zaloSDK添加proguard

-keep class com.zing.zalo.**{ *; }
-keep enum com.zing.zalo.**{ *; }
-keep interface com.zing.zalo.**{ *; }

注:上述步骤都做完后,可能会有报错,如

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add ‘tools:replace=“android:appComponentFactory”’ to element at AndroidManifest.xml:6:5-26:19 to override.

解决方法:
在AndroidManifest.xml里添加

tools:replace="android:appComponentFactory"android:appComponentFactory=""

Zalo登录
1.Zalo授权API

ZaloSDK.Instance.authenticate(Activity, OAuthCompleteListener) //default: LoginVia.APP
ZaloSDK.Instance.authenticate(Activity, LoginVia, OAuthCompleteListener)

LoginVia 有三种登录选项:
LoginVia.APP---------------ZaloApp登录
LoginVia.WEB--------------Zalo网页登录
LoginVia.APP_OR_WEB---------------优先App登录,如果设备没安装App则使用Web登录

OauthCompleteListener获取登录结果:

OAuthCompleteListener listener = new OAuthCompleteListener() {@Overridepublic void onAuthenError(int errorCode, String message) {//授权失败}@Overridepublic void onGetOAuthComplete(OauthResponse response) {String code = response.getOauthCode()//授权成功}
};

2.重写onActivityResult

protected void onActivityResult(int reqCode, int resCode, Intent d) {super.onActivityResult(requestCode, resultCode, data);ZaloSDK.Instance.onActivityResult(this, reqCode, resCode, d);
}


如需获取用户信息,获取用户信息

Unity接入越南社交软件Zalo登录(Android)之SDK接入相关推荐

  1. Unity接入越南社交软件Zalo登录之获取用户信息

    根据Unity接入越南社交软件Zalo登录(Android)之SDK接入接入SDK后,需要获取用户name,id,头像,性别的信息,这一篇文章教你如何获取 根据官网文档获取用户信息API ZaloSD ...

  2. android 社交软件开发,基于Android的移动端社交软件的设计与实现

    摘要: 随着移动互联技术以及移动社交的快速发展,市场对移动互联社交软件的需求越来越强烈.为了满足日益增长的移动社交软件的需求的要求,提高软件的服务质量,设计开发一套移动社交软件很有必要.在这样的背景下 ...

  3. android 支付宝sdk接入详解

    android 支付宝sdk接入详解 第一步 在接入支付宝sdk之前首先要进入支付宝开发者平台申请应用所需要的应用唯一标识(APPID).应用私钥(APP_PRIVATE_KEY).支付宝公钥(ALI ...

  4. android美颜功能吗,Android美颜sdk接入之前需要知道这些知识吗

    原标题:Android美颜sdk接入之前需要知道这些知识吗 既然是美颜sdk,那么肯定会涉及到图像方面的技术或算法.像是直播或短视频这类应用场景,他们在接入Android美颜sdk之前都会根据各自情况 ...

  5. 三行代码接入,社交软件打字时底下弹出的表情布局,自定义ViewPager+页面点标+各种功能的android小框架。...

    (转载请声明出处:http://www.cnblogs.com/linguanh/) 前言: 接上次分享的 ListView 动态加载类,入口:http://www.cnblogs.com/lingu ...

  6. android社交软件页面,基于android社交软件的开发.pdf

    盐城师范学院毕业设计 基于android社交软件的开发 摘 要 当下移动智能手机已经成为人们生活必需品,越来越多的年轻人紧跟时代潮流,对 自己的智能手机进行更新换代,这极大的推动着智能手机的飞跃发展. ...

  7. Android渠道SDK接入常见问题

    应用宝 1. demo可以而游戏微信登陆收不到回调 这是由于速接sdk的onNewIntent没有被调用.解决办法是在ysdk的额外配置脚本中,删除游戏的FirstActivity并将mainActi ...

  8. 社会化登录分享-微信SDK接入

    本篇在基于之前封装的SocialSDK的项目上增加了微信SDK的登录授权和分享.简单介绍了微信登录分享的接入和使用注意 具体代码项目Github地址:github.com/tsy12321/So- 0 ...

  9. android 第三方SDK接入一般流程

    1 官方文档必看 官方文档接入一般包括常规接入和自定义接入.这里的建议是:先常规接入,跑起来,并测试正常之后,然后实现自定义的接入. 目前我接入过的包括:常用的支付,地图,推送,分享,热更新,功能性s ...

最新文章

  1. 在请求完成后回调delegate的方法。然而回调时经常遇到这种情况:delegate已经被释放...
  2. 【每日一算法】两个列表的最小索引总和
  3. Android中点击按钮启动另一个Activity以及Activity之间传值
  4. Windows下Caffe-SSD编译
  5. 面试官问你Java内存区域你用new创建对象来解释
  6. apache2.4 php5.5 配置,求助,apache2.4+php5.5,配置好不能运行,错误信息如下
  7. python模块-logging的智商上限
  8. Linux kmalloc/kfree 源码解读
  9. 基于 MQL5 源代码创建文档
  10. vmware虚拟机使用docker使用代理国外镜像
  11. 计算机毕业设计-SSM企业OA管理系统-JavaWeb企业OA管理系统
  12. datasupport类删除_关于xcode:我可以从iOS DeviceSupport删除数据吗?
  13. linux css压缩工具下载,推荐15个最好用的JavaScript代码压缩工具
  14. 陈伟华,羽毛球视频教学
  15. Scratch-(五)满天星-画笔绘制五角星
  16. 前端取值的方式(ModelMap)
  17. 在Windows系统中查看下载文件的MD5,SHA1,SHA256校验码
  18. 今日芯声 | 不寒而栗!针孔摄像头画质竟然是4K高清的
  19. 中间件监控和告警方案
  20. offer--刷题之路(持续更新)

热门文章

  1. 统计学计算机类实验报告,应用统计学实验报告.doc
  2. java cms建站系统源码_Rongcheng CMS 融成Java后台网站内容管理系统 v3.2.1
  3. 13-07-支付场景
  4. XY51S03B蓝牙5.1芯片OBU方案
  5. (备忘录)matplotlib安装
  6. 集群、分布式、微服务的区别和介绍
  7. “简历造假,面试坦白”如果你是面试官给过吗?
  8. 计算机回收站设置大小,2010年职称计算机考试:“回收站”属性的设置
  9. 导出Word时提示 Word无法启动转换器 mswrd632.wpc
  10. 使用tensorflow训练模型时制作自己的mnist集(附代码)