0

iOS クライアントと通信する Web サービスを Salesforce で作成しています。クライアントは正常に認証され、トークンを受け取りました。アプリは、受信データとして Web サービスを呼び出します。システム管理者としてログインすると、アプリはスムーズに動作します。ただし、標準ユーザーとしてログインすると、アプリは次のエラーで失敗します。

2012-08-06 08:44:13.827 myApp[74075:fb03] Request Failed with Error: Error Domain=com.alamofire.networking.error Code=-1011 "Expected status code in (200-299), got 403" UserInfo=0x8246410 {NSErrorFailingURLKey=https://xxxx-full.cs3.my.salesforce.com/services/apexrest/mobileServices/v1/SystemDataRecords, NSLocalizedDescription=Expected status code in (200-299), got 403}, {
   NSErrorFailingURLKey = "https://xxxx--full.cs3.my.salesforce.com/services/apexrest/mobileServices/v1/SystemDataRecords";
   NSLocalizedDescription = "Expected status code in (200-299), got 403";
}

明らかに、これは共有モデルと関係があると思います。ただし、標準ユーザーが直接 salesforce.com にログインしているときに同じデータを取得しようとしても、問題はありません。

何かご意見は?

4

3 に答える 3

0

共有の問題を除外する 1 つの方法は、クラス定義を共有なしに変更することです (または、共有なしがデフォルトであるため、単純に共有を省略します)。

global without sharing class MyWebService
{
   ...
}

あなたのコードを見なければ、それは単なる共有モデルの問題であると推測できます。ただし、たとえば、Apex コードがアクティブなユーザのプロファイルに基づいて異なる方法で分岐する場合、これも問題になる可能性があります。

于 2012-08-06T17:26:17.690 に答える
0

これは古い投稿ですが、私にとっての問題は「プロファイルに Apex クラスへのアクセス権がありません」でした。それが誰かを助けることを願っています。

于 2015-08-28T14:39:11.203 に答える
-1

5年経って、はい、助かりました。Salesforce Apex Web サービスを呼び出すと、http 403 エラーが発生します。プロファイルに Apex クラスを追加して解決しました ([Apex クラス] > [セキュリティ] > [プロファイルを [有効なプロファイル リスト] に追加] に移動します)。

ここに画像の説明を入力

于 2021-01-14T16:00:47.227 に答える