I\'m trying to add authentication to my Cloud Endpoints, but I can\'t get it to work. I\'m using this blog as a guideline: http://devthots.blogspot.nl/2012/07/building-awesome-a
Be careful when you generate the Android Client ID. When you enter the package name, use the application ID written in app/build.gradle. It may be different of the package for your sources classes.
Explanation:
At the project creation, the package name you enter is used by Android as Application ID and used to generate packages for your source classes. During the project development, you may change the package name for your source classes. But be careful, Android Studio doesn't change automatically your application ID !
Using
GoogleAccountCredential credential = GoogleAccountCredential.usingAudience(MainActivity.this, "server:client_id:12312312312-abcdefghijklmnopqrstuvw012345678.apps.googleusercontent.com");
and
@Api(name = "noteendpoint", clientIds = { Ids.WEB_CLIENT_ID,
Ids.ANDROID_CLIENT_ID }, audiences = { Ids.ANDROID_AUDIENCE }, namespace = @ApiNamespace(ownerDomain = "example.com", ownerName = "example.com", packagePath = "test"))
public class NoteEndpoint {
public class Ids {
public static final String WEB_CLIENT_ID = "12312312312312-abcdefghijklmnopqrstuvwxyz012345678.apps.googleusercontent.com";
public static final String ANDROID_CLIENT_ID = "12312312312312-0123456789abcdefghabcdefghabcdefgha.apps.googleusercontent.com";
public static final String ANDROID_AUDIENCE = WEB_CLIENT_ID;
}
solved the problem.