具有有效“CONSUMER_KEY”和“CONSUMER_SECRET”的Android OAuth

时间:2016-02-05 07:34:39

标签: java android rest http oauth-2.0

我的应用有consumer_keyconsumer_secret有效访问某个网站上的资源。

我像这样创建消费者:

private void createConsumer(){
    mConsumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
}

我像这样创建提供者:

private void createProvider(){
    mProvider = new CommonsHttpOAuthProvider(REQUEST_TOKEN_URL, ACCESS_TOKEN_URL, 
                  AUTHORIZE_URL);
}

然后我使用AsyncTask从服务器中检索我认为是有效AccessToken的内容。

mAccessTokenUrl = mProvider.retrieveRequestToeken(mConsumer, CALL_BACK_URL);

通过这个电话我得到类似的东西: ``http://www.mygarden.org/oauth/authorize?/oauth_token=XXXXXXXXXXXXXXhs343sjd&oauth_callback=http%3A%2F%2Flocalhost

我假设令牌是正确的,因为如果我用不正确的凭据测试它,我就不会得到任何回报。

问题1:

这是callback url是否正确,因为在网站上它没有指定回调网址,只是应用的网站;我应该如何在Android应用程序上使用它?

问题2:

我现在如何使用Access Token来使用网站上的某些服务,例如获取我应该使用此链接的所有工厂:http://api.mygarden.org/activities/all应返回{{1}中的某些数据} xml/json

除非另有说明,否则所有对API的调用都应使用format方法。我不希望用户首先在网站上注册,我只想使用我的应用程序的访问凭据来使用他们提供的服务。如果需要用户凭据,我可以将它们嵌入到URL中并自动授予用户访问权限吗? 该网站是:http://www.mygarden.org

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

获取您不需要对用户进行身份验证的所有工厂的列表。这仅适用于与用户相关的操作,例如发布状态更新或向您的花园添加植物。

所以你只需要调用oauth / request_token然后调用oauth / access_token,之后你就可以从API中获取一些数据了

回答问题1: 如果您开发的Android应用程序不需要回调网址,那么当您想要通过网站对用户进行身份验证时,则需要这样做。确保在mygarden.org的应用程序设置中选择客户端

回答问题2: 要获得所有植物,你需要植物/所有。如果您使用的是标准oauth库,则所有必需的oauth参数都会自动添加到您的查询中

我是mygarden.org的开发人员,您随时可以联系我们的支持;)