我正在使用angular6,在我的项目中我使用Facebook Account Toolkit进行移动验证.
我需要使用以下代码在index.html文件中初始化Account toolkit.
AccountKit.init({
appId:"XX",
state:"xx",
version:"v1.2",
fbAppEventsEnabled:true,
debug:true
});
Run Code Online (Sandbox Code Playgroud)
问题是,appId和状态的值根据环境(开发/测试/生产)而变化.
如何在index.html文件中使用环境变量.
如果有人有角度6的解决方案,请告诉我.
提前致谢.
在过去使用FB API时,您可以使用开发人员门户创建测试帐户,然后使用他们的令牌来测试API.我们将在测试,CI等中使用这些测试用户令牌.
怎么没有Account Kit的测试用户?当我使用Account Kit API使用我的测试用户访问令牌时,它们不起作用.
我刚才看到的是Facebook帐户套件被弃用。关于折旧背后的原因是什么,或者下一步可能是什么/替代方法的信息并不多。
嗨,我正在Facebook Instant Verification我的应用程序中实现.在我的应用程序中,我正在验证移动号码的客户,我正在发送OTP以获得此验证.
我想改变方法,因为最近Facebook推出了一个概念Facebook Instant Verification,根据您在Facebook帐户中配置的任何数字来验证手机号码.
https://developers.facebook.com/blog/post/2016/12/20/introducing-instant-verification/
https://developers.facebook.com/docs/accountkit/android
https://developers.facebook.com/docs/accountkit/overview
我已经完成了文章中所说的任何内容但是因为它写的是每当你输入在你的facebook应用程序中配置的相同号码时,facebook帐户工具包将根据你的facebook帐户上的任何内容验证你的手机号码,否则它会发送OTP然后执行验证.
在我的情况下,我输入相同的手机号码,在我的Facebook帐户上配置并使用最新的Facebook应用程序,但它仍然不会根据Facebook应用程序上配置的手机号码验证手机号码,它总是发送OTP.
因为它应该在没有OTP的情况下进行验证 我不确定我的代码和配置中缺少什么,因为它始终使用OTP进行验证.
请支持.提前致谢.
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data android:name="com.facebook.accountkit.ApplicationName"
android:value="@string/app_name" />
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/FACEBOOK_APP_ID" />
<meta-data android:name="com.facebook.accountkit.ClientToken"
android:value="@string/ACCOUNT_KIT_CLIENT_TOKEN" />
<activity
android:name="com.facebook.accountkit.ui.AccountKitActivity">
<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="@string/ak_login_protocol_scheme" />
</intent-filter>
</activity>
</application>
Run Code Online (Sandbox Code Playgroud)
apply …Run Code Online (Sandbox Code Playgroud) android facebook facebook-android-sdk facebook-login account-kit
在过去的几周里,我突然收到了一些关于此的崩溃报告。崩溃表明某些国家/地区代码缺少元数据。他们中的大多数人是其中之一:
崩溃似乎是凭空发生的。我尝试将 AccountKit 版本从 4.28.0 升级到 4.31.0。这导致从发生崩溃的位置移动com.facebook.accountkit.internal.Utility.parseNumber到com.facebook.accountkit.ui.PhoneNumberTextWatcher.getFormattedNumber但崩溃仍在发生。
我的下一个攻击计划是尝试com.googlecode.libphonenumber通过 Gradle 直接包含依赖项,而不是让它从 AccountKit SDK 传递地包含,但我并没有屏住呼吸它会解决问题。任何其他想法都非常感谢。
我使用Facebook帐户工具包来验证用户手机号码.我使用下面的代码,
final Intent intent = new Intent(MainActivity.this, AccountKitActivity.class);
AccountKitConfiguration.AccountKitConfigurationBuilder configurationBuilder =
new AccountKitConfiguration.AccountKitConfigurationBuilder(
LoginType.PHONE,
AccountKitActivity.ResponseType.TOKEN); // or .ResponseType.TOKEN
// ... perform additional configuration ...
intent.putExtra(
AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION,
configurationBuilder.build());
startActivityForResult(intent, APP_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
一切都很顺利.我想将用户手机号码传递给AccountKit活动.它可以使它工作吗?怎么样?实际上我想使用Account Kit防止重复的移动验证,还有其他方法吗?
我有android studio Facebook帐户套件的这个错误
Failed resolution of: Lcom/google/android/gms/common/api/Api$zzf;
Run Code Online (Sandbox Code Playgroud)
细节日志
07-25 16:23:41.683 20088-20088/com.nazir.shopping E/AndroidRuntime:致命异常:主要过程:com.nazir.shopping,PID:20088 java.lang.NoClassDefFoundError:的失败分辨率:LCOM /谷歌/安卓/ GMS /普通/ API /原料药$ ZZF; 在com.google.android.gms.auth.api.Auth(未知来源:0).在com.facebook.accountkit.ui.AccountKitActivity.onCreate(AccountKitActivity.java:281)在android.app.Activity.performCreate(活动.java:7117)在android.app.Anstrumentation.callActivityOnCreate(Instrumentation.java:1262)android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2867)的android.app.Activity.performCreate(Activity.java:7108)在Android.app.ser.TravertactionExecutor.executeCallbacks(TransactionExecutor.java:101)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3027)处于android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:73)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1786)在android.os.Handler.dispatchMessage(Handler.java:106)在安卓.os.Looper.loop(Looper.java:164)在android.app.ActivityThread.main(ActivityThread.java:6656)在java.lang.reflect.Method.invoke(本机方法)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)在com.android.internal.os.ZygoteInit.main( ZygoteInit.java:823)引起:java.lang.ClassNotFoundException:路径上没有找到"com.google.android.gms.common.api.Api $ zzf"类:DexPathList [[zip file"/ data/app /com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/base.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_dependencies_apk.apk",zip文件"/data/app/com.nazir .shopping-VZh5unWKQWN7d8SWHtKjbw ==/split_lib_resources_apk.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_0_apk.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw ==/split_lib_slice_1_apk.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_2_apk.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_3_apk .apk",zip文件"/data/app/com.nazir.sh opping-VZh5unWKQWN7d8SWHtKjbw ==/split_lib_slice_4_apk.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_5_apk.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw= =/split_lib_slice_6_apk.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_7_apk.apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_8_apk. apk",zip文件"/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/lib/x86,/ data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw ==/base.apk!/ lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_dependencies_apk.apk!/ lib/x86,/ data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw ==/split_lib_resources_apk.apk!/ lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_0_apk.apk!/lib/x86,/ data/app/com.nazir.shopping-VZh5unWKQWN7 d8SWHtKjbw ==/split_lib_slice_1_apk.apk!/ lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_2_apk.apk!/lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw= =/split_lib_slice_3_apk.apk!/ lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_4_apk.apk!/lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/ split_lib_slice_5_apk.apk!/ lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_6_apk.apk!/lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_7_apk. apk!/ lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_8_apk.apk!/lib/x86,/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_slice_9_apk.apk!/LIB/86,/系统/ lib中]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)在java.lang.ClassLoader.loadClass(ClassLoader.java:379)在java.lang.ClassLoader.loadClass( ClassLoader.java:312)... 17更多抑制:java .io.IOException:发现DEX位置/data/app/com.nazir.shopping-VZh5unWKQWN7d8SWHtKjbw==/split_lib_resources_apk.apk在dalvik.system.DexFile.openDexFileNative(本机方法)在dalvik.system.DexFile没有原DEX文件. dalvik.system.DexFile上的dalvik.system.DexFile.(dexFile.java:103)中的openDexFile(DexFile.java:356).dalvik.system.DexPathList.loadDexFile上的dexFile.java:77(DexFile.java:77)(DexPathList.java:374) )在在dalvik.system.PathClassLoader dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)在dalvik.system.DexPathList.(DexPathList.java:157)在dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:65) .(PathClassLoader.java:64)com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)位于android.app的com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88) .ApplicationLoaders.getClassLoader(ApplicationLoaders.java:72)在android.a.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:38)的android.a上 pp.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:713)在android.app.LoadedApk.getClassLoader(LoadedApk.java:747)在android.app.LoadedApk.getResources(LoadedApk.java:969)在android.app.ContextImpl.createAppContext (ContextImpl.java:2298)在android.app.ActivityThread.handleBindApplication(ActivityThread.java:5754)在android.app.ActivityThread.access $ 1100(ActivityThread.java:193)在android.app.ActivityThread $ H.handleMessage(ActivityThread .java:1623)......还有6个