首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Commercetools Sphereio SphereClient为空

Commercetools Sphereio SphereClient为空
EN

Stack Overflow用户
提问于 2015-09-10 07:20:29
回答 2查看 286关注 0票数 1

我正在尝试运行一个在android中获取产品细节的简单示例。我正在使用java示例作为指南。

https://github.com/sphereio/sphere-hello-api/tree/master/java

代码语言:javascript
复制
  SphereClient sphere = SphereClient.create(
                new SphereClientConfig.Builder("xxxxxx", "xxxxxx", "xxxxxxxx", Locale.ENGLISH).build());

我得到了这个错误:

代码语言:javascript
复制
io.sphere.client.SphereClientException: null: null

我的build.gradle:

安卓{ compileSdkVersion 22 buildToolsVersion '22.0.1‘

代码语言:javascript
复制
packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/ASL2.0'
}

defaultConfig {
    applicationId "com.spheretest"
    minSdkVersion 15
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

}依赖项{fileTree(包括:‘*..jar’,dir:'libs')编译'com.android.support:appcompat-v7:22.2.1‘编译'io.sphere:sphere-java-client:0.60.0’}

是否有任何android示例可以测试运行以获得与Sphere的基本连接?

Stacktrace:

代码语言:javascript
复制
    09-10 12:39:27.193  24611-24673/com.spheretest I/System.out﹕ 12:39:27.193 [Sphere-ClientCredentials-refresh-1] DEBUG sphere - [oauth] Refreshing access token.
09-10 12:39:27.195  24611-24611/com.spheretest I/System.out﹕ 12:39:27.194 [main] DEBUG sphere - [cache] Refreshing category tree.
09-10 12:39:27.206  24611-24611/com.spheretest I/System.out﹕ SphereClient== io.sphere.client.shop.SphereClient@76338d
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ 12:39:27.896 [Sphere-ClientCredentials-refresh-1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ Non cached request
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ DefaultHttpRequest(chunked: false)
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ POST /oauth/token?grant_type=client_credentials&scope=manage_project%3Aorderjoy-85 HTTP/1.1
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ Host: auth-v0.sphere.io
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ Content-Type: application/x-www-form-urlencoded
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ Connection: keep-alive
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ Accept: */*
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ User-Agent: NING/1.0
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ [ 09-10 12:39:27.897 24611:24673 I/System.out ]
    using Channel
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ [id: 0xb6a042f6, /192.168.1.3:38555]
09-10 12:39:27.897  24611-24673/com.spheretest I/System.out﹕ [ 09-10 12:39:27.901   774: 3054 I/AccountManagerService ]
    getTypesVisibleToCaller: isPermitted? true
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ 12:39:29.369 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ [ 09-10 12:39:29.370 24611:24662 I/System.out ]
    Request DefaultHttpRequest(chunked: false)
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ POST /oauth/token?grant_type=client_credentials&scope=manage_project%3Aorderjoy-85 HTTP/1.1
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Host: auth-v0.sphere.io
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Content-Type: application/x-www-form-urlencoded
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Connection: keep-alive
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Accept: */*
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ User-Agent: NING/1.0
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ [ 09-10 12:39:29.370 24611:24662 I/System.out ]
    Response DefaultHttpResponse(chunked: true)
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ HTTP/1.1 401 Unauthorized
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Server: nginx
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Date: Thu, 10 Sep 2015 07:09:30 GMT
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Content-Type: application/json; charset=utf-8
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Transfer-Encoding: chunked
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Connection: keep-alive
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ WWW-Authenticate: Bearer realm="sphere", error="invalid_client", error_description="Please provide valid client credentials using HTTP Basic Authentication."
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Pragma: no-cache
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ Cache-Control: no-store
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ X-Correlation-ID: nginx-e04c33e0-0354-45fd-87eb-69a755c84a81
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ X-Served-By: app12.sphere.prod.commercetools.de
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ X-Served-Config: sphere-auth-ws-1.0
09-10 12:39:29.370  24611-24662/com.spheretest I/System.out﹕ [ 09-10 12:39:29.378 24611:24662 I/System.out ]
    12:39:29.378 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider - Sending authentication to https://auth-v0.sphere.io/oauth/token?grant_type=client_credentials&scope=manage_project%3Aorderjoy-85
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ 12:39:29.383 [New I/O worker #1] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ Non cached request
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ DefaultHttpRequest(chunked: false)
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ POST /oauth/token?grant_type=client_credentials&scope=manage_project%3Aorderjoy-85 HTTP/1.1
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ Host: auth-v0.sphere.io
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ Content-Type: application/x-www-form-urlencoded
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ Authorization: Basic SlI0STlQWTZmTU5HbG9JVWVsLWN6UEFPOkN1U2F4NmRCdHhfN0ZmWXNULUg2VUJvXzB6OXpEVGdR
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ Connection: keep-alive
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ Accept: */*
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ User-Agent: NING/1.0
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ [ 09-10 12:39:29.383 24611:24662 I/System.out ]
    using Channel
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ [id: 0x04c9853c, /192.168.1.3:38556]
09-10 12:39:29.383  24611-24662/com.spheretest I/System.out﹕ [ 09-10 12:39:29.479 24856:24868 W/com.worklight.common.Logger ]
    com.worklight.common.Logger.setContext(Context) must be called to fully enable debug log capture.  Currently, the 'capture' flag is set but the 'context' field is not.  This warning will only be printed once.
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ 12:39:30.823 [New I/O worker #2] DEBUG c.n.h.c.p.n.NettyAsyncHttpProvider -
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ [ 09-10 12:39:30.824 24611:24663 I/System.out ]
    Request DefaultHttpRequest(chunked: false)
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ POST /oauth/token?grant_type=client_credentials&scope=manage_project%3Aorderjoy-85 HTTP/1.1
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ Host: auth-v0.sphere.io
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ Content-Type: application/x-www-form-urlencoded
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ Authorization: Basic SlI0STlQWTZmTU5HbG9JVWVsLWN6UEFPOkN1U2F4NmRCdHhfN0ZmWXNULUg2VUJvXzB6OXpEVGdR
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ Connection: keep-alive
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ Accept: */*
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ User-Agent: NING/1.0
09-10 12:39:30.824  24611-24663/com.spheretest I/System.out﹕ [ 09-10 12:39:30.824 24611:24663 I/System.out ]
    Response DefaultHttpResponse(chunked: true)
EN

回答 2

Stack Overflow用户

发布于 2015-09-10 12:16:30

有一个商业工具平台的SDK,可以在所有JVM语言("SPHERE“:https://github.com/sphereio/sphere-jvm-sdk)中使用,但是需要Java8语言特性,因此不能在Android上使用,因为Android不是JVM。

您正在尝试的“旧”SDK (遗憾的是它仍然在Java示例中使用)在技术上是兼容Android的,但我不建议使用它,因为它不再维护(https://github.com/commercetools/sphere-play-sdk)。

因此,到今天为止,Android客户机是直接针对HTTP构建的,使用的是Android内置的HTTP客户机等等。

实际答案是:你可以用这个谷歌眼镜演示应用程序( https://github.com/sphereio/google-glass-demo. GitHub,麻省理工学院许可证)找到一个运行正常的安卓示例:

请注意:现有的SPHERE的OAuth授权范围目前还不足以构建一个完整的本地应用程序,包括直接针对commercetools (SPHERE) API进行签出。您将不得不考虑不进行本地签出(即webview),或者(更好的)运行一个最小的服务器端API shim,它为公共应用程序列出内容,并执行OAuth并知道秘密。

不过,对于像上面的Google演示代码这样的概念的原型/证明,这并不是一个问题。

票数 1
EN

Stack Overflow用户

发布于 2016-02-24 11:07:48

与此同时,我们还致力于更好地支持手机。例如,我们为Android创建了一个Hello,您可以使用它作为移动应用程序的起点:https://github.com/sphereio/commercetools-android-example

在不久的将来,我们将继续扩大对移动平台的支持。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32495537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档