700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Unity接入越南社交软件Zalo登录(Android)之SDK接入

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

时间:2021-08-24 16:08:32

相关推荐

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

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-91is 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.APPZaloSDK.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);}

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。