【问题标题】:Android OAuth with valid "CONSUMER_KEY" and "CONSUMER_SECRET"具有有效“CONSUMER_KEY”和“CONSUMER_SECRET”的 Android OAuth
【发布时间】:2016-12-20 00:57:01
【问题描述】:

我有一个有效的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

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

问题一:

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

问题 2:

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

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

感谢您的帮助。

【问题讨论】:

    标签: java android rest http oauth-2.0


    【解决方案1】:

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

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

    问题 1 的答案: 如果您正在开发一个 android 应用程序,则不需要回调 url,当您想通过网站对用户进行身份验证时,这是需要的。确保在 mygarden.org 上的应用设置中选择客户端

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 2011-07-16
      • 2011-09-18
      • 2013-07-28
      • 2017-02-18
      • 2016-11-17
      相关资源
      最近更新 更多