Gigya - socialize.shortenURL - Android

时间:2016-01-05 19:24:50

标签: java android sdk gigya

我正在尝试使用Gigya Android SDK中的socialize.shortenURL(版本: 3.3.0 )。

以下是我尝试做的一个例子:

GSObject params = new GSObject();
params.put("url", url);
GSAPI.getInstance().sendRequest("socialize.shortenURL", 
    params, 
    new GSResponseListener() {
        @Override
        public void onGSResponse(String s, GSResponse r, Object o) {
            // Do something with the returned url...
        }
    }, 
    null);

问题在于我总是得到Gigya的以下回复:

{
    "callId": "XXXXXXXXXXXXXXXXXX",
    "errorCode": 400002,
    "errorDetails": "Missing required parameter: No secret or signature were provided. Request could not be verified.",
    "errorMessage": "Missing required parameter",
    "statusCode": 400,
    "statusReason": "Bad Request",
    "time": "XXXXXXXXXXXXXXXXXX"
}

我的问题是:我是否真的需要手动制作"这个请求的签名?

出于安全考虑,我真的想避免在Android客户端上使用密钥。

我对REST api中列出的其他端点做了类似的请求,没有任何问题,也没有使用我的密钥(我知道SDK正在为自己制作签名,我只是不明白为什么这样做没有发生在socialize.shortenURL

1 个答案:

答案 0 :(得分:2)

有一些Gigya REST API调用只能从服务器端上下文中获得; socialize.shortenURL就是其中之一。这意味着您无法直接通过任何客户端SDK(Android / iOS /等)调用REST API端点,否则您将遇到问题中显示的错误。

您不应尝试在Android应用程序中执行请求或任何需要包含Gigya合作伙伴密钥的操作的签名,因为这不安全且可能无意中泄露了您的合作伙伴密钥。

对于像这样的REST端点,Gigya通常建议您通过服务器实现代理REST API调用。此服务器端实现将通过您的移动应用程序调用,直接在服务器端调用REST端点,然后将信息代理回您的移动应用程序。