我正在尝试将Salesforce Mobile SDK用于原生Android。 要求:
- 允许任何拥有Salesforce帐户的用户登录
- 获取他/她的联系人列表
- 获取特定的联系方式
醇>
如果这些不属于移动SDK,请与我们联系。
我关注https://github.com/forcedotcom/SalesforceMobileSDK-Android:
- 克隆它
- 已安装NPM并安装了所需的子模块
- 使用原生的forceroid
创建了一个新的Android应用程序- 使用我已连接的应用的值更改了
醇>bootconfig.xml
值。
它记录正常,但当我尝试获取联系人时,它说:
未为此组织启用Rest API
登录响应似乎没问题。客户端对象json凭证:
{
"clientId": "*******",
"loginUrl": "https://login.salesforce.com",
"identityUrl": "https://login.salesforce.com/id/99VVHJHGF5688/00548000003yOKeAAM",
"instanceUrl": "https://ap2.salesforce.com",
"userId": "**********",
"orgId": "*********",
"communityUrl": null,
"refreshToken": "*************",
"accessToken": "************",
"communityId": null,
"userAgent": "SalesforceMobileSDK/4.3.0 android mobile/7.0 (Nexus 6P) SFTest/1.0 Native uid_32aea9bdde1b8b7e"
}
编辑1:获取联系人列表的代码:
public void onFetchContactsClick(View v) throws UnsupportedEncodingException {
sendRequest("SELECT Name FROM Contact");
}
private void sendRequest(String soql) throws UnsupportedEncodingException {
RestRequest restRequest = RestRequest.getRequestForQuery(ApiVersionStrings.getVersionNumber(this), soql);
client.sendAsync(restRequest, new AsyncRequestCallback() {
@Override
public void onSuccess(RestRequest request, final RestResponse result) {
result.consumeQuietly(); // consume before going back to main thread
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
listAdapter.clear();
JSONArray records = result.asJSONObject().getJSONArray("records");
for (int i = 0; i < records.length(); i++) {
listAdapter.add(records.getJSONObject(i).getString("Name"));
}
} catch (Exception e) {
onError(e);
}
}
});
}
@Override
public void onError(final Exception exception) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,
MainActivity.this.getString(SalesforceSDKManager.getInstance().getSalesforceR().stringGenericError(), exception.toString()),
Toast.LENGTH_LONG).show();
}
});
}
});
}
编辑2:更多调查结果:
我认为这与我的帐户/已连接的应用设置有关。因为 当我使用https://developer.salesforce.com/signup进行signedup并使用时
username
它工作正常。如果我使用username
使用相同的BTW我目前正在使用salesforce的试用版。
答案 0 :(得分:1)
常规试用帐户适用于专业版,它不包含API访问权限,这是您获得的错误。您需要使用具有API访问权限的帐户,例如免费的开发人员版帐户或企业版帐户。