androidreact-nativeaccount-kit

account kit deep-link login link from email doesn't open my app


I have a react-native app running on android and the app link from the authentication email doesn't trigger open back into the app.
https://github.com/underscopeio/react-native-facebook-account-kit

the link from the email is ak{my-facebook-appid}://authorize/

and I've configured my strings.xml

...
<string name="fb_app_id">MY_FACEBOOK_APP_ID</string>
<string name="ak_client_token">MY_CLIENT_TOKEN</string>

How do I diagnose to make sure that my app is handling that deep link intent? I have the app set to singleTask because of the branch sdk - should I set it to a different mode?


Solution

  • So I found the answer in two places, initially I saw that you needed to update your AndroidManifest.xml by adding an intent to the account activity - as noted in the Addtional Email Features section of the documentation https://developers.facebook.com/docs/accountkit/android/configuration/

      <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>
    

    However, this does not work correctly as it can land you on the wrong step in the account kit activity flow. I looked at their sample android project and saw that the intent should be with the AccountKitEmailRedirectActivity, at which point it started working correctly.

      <activity android:name="com.facebook.accountkit.ui.AccountKitEmailRedirectActivity">
          <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>