2011-09-10 23 views
1

我一直在尝试连接到Salesforce REST API,但没有很好的运气。 Salesforce REST API Quick Start Guide指出需要HTTPS回调网址,但在此示例中它们使用https://localhost:8443/RestTest/oauth/_callback作为回调网址。Salesforce REST API回调URL是否需要HTTPS?

我试着使用这个php Salesforce REST API example在我的测试服务器(HTTP)上连接,但是Salesforce似乎已经合适并且进入了重定向循环。

如果我没有SSL证书,是否可以连接到Salesforce REST API?如果有,我该怎么做?为了记录,我的应用程序是用PHP编写的,而不是像大多数官方示例那样使用Java。

+0

你想通过举例来说明什么?这个例子是HTTPS。 “但”是什么? –

+0

但它在“localhost”的开发环境中。如果可以在本地主机上使用https,我很想知道如何。 – TrentonMcManus

+0

是什么让'localhost'如此特别? http://www.google.com.au/search?sourceid=chrome&ie=UTF-8&q=https+on+apache或http://www.google.com.au/search?aq=f&sourceid=chrome&ie=UTF- 8&q = https + on + iis - 只需获得证书即可离开。 –

回答

1

我从来没有使用Salesforce REST API,但我已经阅读了您链接到的页面。

OAuth回调URL必须是HTTPS。你似乎已经发现了这个自己的文件都在:

它必须是安全的:HTTP://不起作用,只有https://开头

...和示例:

@WebInitParam(name = "redirectUri", value = 
    "https://localhost:8443/RestTest/oauth/_callback") 

至于你的其他问题:

是否可以连接到Salesforce的REST API,如果我没有一个SSL证书,如果是的话,我该怎么做呢?

大概用第二种方法,如在第一句中提到的网页上链接到您:

您可以使用OAuth 2.0 建立授权或传递一个会话ID

...

会话ID授权

您可以使用一个会话ID,而不是一个OAuth 2.0访问令牌,如果你不处理别人的密码:

  1. 获得一个会话ID,例如,SOAP Web服务API login()调用返回会话ID。您也可以拥有会话ID,例如作为Apex当前上下文的一部分。

  2. 向资源发送请求时使用会话ID。替换标记值的ID。

所以,只要你是不是处理一些其他的密码(知道是什么意思),你可以使用login()获得一个会话ID,并从那里与Web服务进行通信。

+0

只要您在Callback Url为https的地方运行,[PHP Salesforce REST API示例](https ://github.com/petewarden/salesforce_restphp_example/blob/master/index.php)的作品。 – TrentonMcManus