Json 将oAuth令牌与Azure MobileServiceClient.login()一起使用
我正在使用本机Facebook SDK(通过一个名为“SimpleFacebook”的开源工具)通过Facebook进行身份验证。那部分工作得很好。我发现缺少Facebook身份验证的Microsoft Azure实现 无论如何,下一步是使用此Facebook会话中的令牌,并通过MS/Azure进行身份验证。有两种方法,看起来他们应该这样做Json 将oAuth令牌与Azure MobileServiceClient.login()一起使用,json,azure,oauth,azure-mobile-services,facebook-java-sdk,Json,Azure,Oauth,Azure Mobile Services,Facebook Java Sdk,我正在使用本机Facebook SDK(通过一个名为“SimpleFacebook”的开源工具)通过Facebook进行身份验证。那部分工作得很好。我发现缺少Facebook身份验证的Microsoft Azure实现 无论如何,下一步是使用此Facebook会话中的令牌,并通过MS/Azure进行身份验证。有两种方法,看起来他们应该这样做 public void login(java.lang.String provider, java.lang.String oAuthToken,
public void login(java.lang.String provider,
java.lang.String oAuthToken,
UserAuthenticationCallback callback)
使用特定于提供商的oAuth令牌调用Windows Azure移动服务身份验证
Parameters:
provider - The provider used for the authentication process
oAuthToken - The oAuth token used for authentication
callback - Callback to invoke when the authentication process finishes
还有另一个非常类似的方法,其中第二个参数是类型为的JSON对象:
com.google.gson.JsonObject oAuthToken,
是我还是这里缺少文档?我尝试调用Facebook会话的.getAccessToken()并将其传递给函数,但Azure出现了一个错误:
Caused by: com.microsoft.windowsazure.mobileservices.MobileServiceException: {"code":400,"error":"Error: invalid json"}
at com.microsoft.windowsazure.mobileservices.MobileServiceConnection$1.onNext(MobileServiceConnection.java:115)
我们如何知道正确的JSON格式是什么?
我用的是正确的代币吗
有关更多信息,请访问:
我想我已经弄明白了。基本上我所要做的就是创建一个JSON对象(这对我来说是相当新的)。我之前尝试过这个,但是我导入了错误的JSON类(我导入了org.JSON.JsonObject或其他东西,而不是com.google.gson.JsonObject) 一旦我这样做了,我就必须弄清楚正确的json属性应该是什么。通过大量谷歌搜索,我发现这是正确的格式:
JsonObject jo = new JsonObject();
jo.addProperty("access_token", token);
然后在调用中使用jo.toString(),如下所示:
mClient.login(MobileServiceAuthenticationProvider.Facebook, jo.toString(), new UserAuthenticationCallback() {
.....
}
真的没那么难,但是为什么Azure团队不把这个放在他们的文档中呢???
对于一个经验丰富的开发人员来说,这可能只是“显而易见”的信息,但我花了整整一个晚上才弄明白。在“如何:验证用户/客户端流”下的文档中很快提到了这一点: