Salesforce Native IOS SDK无法刷新访问令牌

时间:2015-02-05 20:51:10

标签: ios salesforce salesforce-ios-sdk

我目前正在使用Salesforce.com IOS SDK 3.0版来构建连接到salesforce的本机应用程序。此应用程序将用于外部用户,因此它指向社区。

我首先创建了一个Native IOS SDK应用程序,然后让它工作并与salesforce交谈。

然后我创建了一个新社区,创建了一个社区用户,为他们提供了适当的权限并完成了社区的设置。

接下来,我进入Xcode项目,支持文件到应用程序plist。然后我编辑了SFDCOAuthLoginHost以设置为社区URL。

一旦完成,我重新启动了应用程序,并且能够通过本机SDK登录社区,并且在应用程序达到其会话超时之前,情况会很好。此时我收到这些错误。

ERROR|SFNetworkOperation|callDelegateDidFailWithError Session expired or invalid
ERROR|SFNetworkOperation|Session timeout encountered. Requeue  0.000000or retry later
ERROR|SFNetworkEngine|Ignore session timeout error callback as host URL changed, request URL is https://dev-patientsupport-dev.cs21.force.com/dev/services/apexrest/patientNotifications, login host is [cs21.salesforce.com]

当然,因为它无法获得新会话所有网络标注在此之后失败。

我到处搜索,无法找到解决此问题的方法。我的猜测是,因为请求是发送到社区URL,但是刷新的会话是从cs21.salesforce.com发送的,所以它被忽略了。再次感谢每个人的时间。

2 个答案:

答案 0 :(得分:1)

看起来这可能是由于刷新令牌在使用社区时将其instanceURL设置为错误的目标。这可能是SDK中的一个错误,因为它在网络上运行良好。尝试将凭据的instanceURL更改为与社区的URL相同,以查看是否有帮助。

答案 1 :(得分:1)

此错误的修复已作为GitHub,npm(forceios)和Cocoapods上的Mobile SDK 3.1.1补丁的一部分提交。有关详细信息,请参阅https://plus.google.com/105428096535342044035/posts/AkoVwL5Kdt3