question

shaqspeare avatar image
shaqspeare asked

api_key.txt conflict with ADM key on Android

[On behalf of: Ether Books Ltd] The situation I have is, I now have Login with Amazon working on my Android app, and I also have Amazon Device Messaging working on on the same device. BUT I can't have both working because they are both looking for their (different) api keys in the same assets/api_key.txt file. Surely there is a way to use both? I figured ADM is less likely to allow change as the library is a stub and the real code is on device, whereas the LWA jar is embedded in the apk. So...is there a way to specify the location of the api_key.txt file for LWA? If not this is a massive oversight in your integration with Amazon, that it is incompatible with any other secure Amazon service in the SDK. This comes because LWA used a key from a sellercentral.amazon.com account and ADM uses a key from developers.amazon.com account. And they are not using the same key even though they take the same process of package and MD5 inputs to generate the keys. Any help appreciated! Tree
login with amazon
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
Hi Ether Books Ltd, Kindly email us at lwa-support@amazon.com, providing us the email address of the account you use on http://developers.amazon.com for ADM, so that we can re-generate your APIKey to match the one you have for ADM. Also, please let us know which Security Profiles you would like to enable Login with Amazon on. Please note that if this is done, you will see your AppStore Security Profiles listed as Applications in the Login with Amazon App Console, and vice versa. If you want to enable LWA on an AppStore Security Profile, you will need to contact us at lwa-support@amazon.com and give us the applicationId to enable.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
[On behalf of: Ether Books Ltd] OK will do. There is an outstanding request already with support at developers.amazon.com, which I believe should be doing this already, but it soulds like you are the right people to make this change.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
We have made the necessary changes to enable you to use both Login With Amazon and ADM in your apps. When you visit the Login With Amazon App Console, you will now see your ADM security profiles presented as Login With Amazon applications. You will likewise see Login With Amazon applications in the Security Profiles page within the Mobile App Distribution site. An API key generated for an app through either page will allow you to use both Login With Amazon and ADM in that app. Please note that if you create additional security profiles through the Mobile App Distribution site, you will need to contact us before you will be able to use Login With Amazon with the new security profiles.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
[On behalf of: Ether Books Ltd] Thanks for your help with this. I have just come back onto the project and we have decided to consolidate the LwA and developer accounts onto a single account. I have set up a new LwA account and developer account using the new email address I am using for this post. I have also created a security profile for the new android/kindle app. So should I now send a support request to LwA support or developer.amazon.com support to get these merged? Or can you do it from this forum post? I have not created any android settings yet on the LwA app page yet, as I suspect you might need to do that at your end, but if not please advise. The page actually asks for details I have, so I was also wondering if I can do this operation without your intervention? I'd like to get this app submitted this week so a quick response would be appreciated. Tree
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
[On behalf of: Ether Books Ltd] Marked as unanswered as I have asked a few follow up questions on our new developer account.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
Allow me to confirm that I understand your request: you have a new developer.amazon.com account that you would like to associate with your LWA account, is that correct? Have you launched any apps using security profiles on your previous developer account?
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
[On behalf of: Ether Books Ltd] HI Annabelle, Yes you are correct. I have a developer.amazon.com and login.amazon.com using the same email account now, so the account is not attached directly to one developer (people leave companies after all). Both of these accounts are new, and I'm using that account to send this post. We have not released any apps on the old account. I have unloaded the prototype apk and added it to the new app on the new account. The other account will get deleted in due course. Tree
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
We have associated your existing security profiles with the new developer. If you log into Mobile App Distribution under your new developer, you should see your LWA applications as security profiles. If you log in under the old developer, you will no longer see any security profiles. You should be able to create Android clients on your own. If you want to create a new application/security profile and use LWA with it, you should create it through the LWA App Console so that LWA is enabled on it. If you happen to create one through Mobile App Distribution and would like to use LWA on it, contact us over the forum or at lwa-support@amazon.com and we can enable it.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
[On behalf of: Ether Books Ltd] I'm a little mystified by what you have done. I have tried to login with the api-keys attached to the developer account and I get this as an error callstack: Callback: Error=invalid_scopeerror_description=An+unknown+scope+was+requested AuthError cat= INTERNAL type=ERROR_SERVER_REPSONSE - com.amazon.identity.auth.device.AuthError: Error=invalid_scopeerror_description=An+unknown+scope+was+requested at com.amazon.identity.auth.device.authorization.AuthorizationResponseParser.constructErrorBundle(AuthorizationResponseParser.java:118) at com.amazon.identity.auth.device.authorization.AuthorizationResponseParser.extractResultsBundle(AuthorizationResponseParser.java:72) at com.amazon.identity.auth.device.authorization.AuthorizationActivity.onCreate(AuthorizationActivity.java:40) at android.app.Activity.performCreate(Activity.java:4635) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1999) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2060) at android.app.ActivityThread.access$600(ActivityThread.java:127) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1181) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4558) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(Native Method) The only change from when it worked was the api-keys. I'm not sure where the changed security profile has come from as I can see no android settings on either this account or the previous LwA account which match the accounts unless it's the one which has the the app id. Is it not possible to have this on my current account. Either way, the current API-keys work fine with ADM but fail with LwA. I have uninstalled the app, cleared my browser cache. Is there any other cache I should clear to get this to work or is there a problem at the back end? I have gone back and tried the unmatched LwA api-key on my old Tree account and that still works fine, but obviously prevents me using ADM. So the client code is not at fault. To me it seems that the API keys are simply not working with LwA. Tree
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shaqspeare avatar image
shaqspeare answered
Hi, You should no longer receive this error. Your account was incorrectly not whitelisted to request the profile scope which was causing the invalid scope error when it was requested. Please try again and let us know if you are still having issues. We apologize for the inconveniences.
10 |5000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.