0

Mindbody API にアクセスするためにこのコードを実行しています。このメソッドは、選択したクラスにクライアントを追加します。しかし、これは機能せず、メッセージが表示されます:

「ErrorCode : 201 アクションが失敗しました。詳細については、オブジェクト メッセージを参照してください。」

 public string SignUp(Credentials credentials, string[] clientIds, int[] classIds)
    {
        var addToclassRequest = new AddClientsToClassesRequest
        {
            SourceCredentials = new SourceCredentials
            {
                SourceName = credentials.SourceName,
                Password = credentials.SourcePassword,
                SiteIDs = credentials.SiteId
            },
           ClientIDs = clientIds,
           ClassIDs = classIds,
           Test = true,
           RequirePayment = false,
           Waitlist = false,
           SendEmail = true
        };
        var c = _classService.AddClientsToClasses(addToclassRequest);

        return c.Message.ToString();
    }

なぜ失敗するのかわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

リクエストで何も送信していないためUserCredentials、通常は「ビジネス モード」よりも権限のレベルが低い「コンシューマー モード」で動作していSourceCredentialsますUserCredentials

完全にはわかりませんが、クラス ( ) にクライアントを追加するために支払いを要求する必要がないことを確認したい場合はRequirePayment = false、「ビジネス モードで呼び出しを実行する必要があるかもしれません。 "。

それでもうまくいかず、同じエラーが返される場合は、おそらく次のことを確認する必要があります。

  • 有効なクライアント ID を持っている
  • 有効なクラス ID を持っています

それでもうまくいかない場合はClientServiceID、別の価格設定オプション ID を渡してみてください (このパラメーターはAddClientsToClassesAPI 呼び出しのドキュメントに具体的に記載されていないことはわかっていますが、渡すことはできます。それを理解するのは当て推量でした)。クラスの支払いに使用する予定の価格設定オプション。これにより、クライアントを予約したいクラスに対して何らかの支払いを行う方法を考え出す道が開かれます.

これが役立つかどうかはわかりませんが、クラスでクライアントを適切に予約するために最終的に実行する必要があることがわかったワークフローです (以下の各手順では API 呼び出しが必要でした)。

  • 予約したいユーザーの MindBody クライアント ID を取得または作成する
  • クライアントを予約するクラスの MindBody クラス ID を取得します
  • MindBody サイトからすべてのサービス カテゴリ (別名プログラム ID) を取得し、クラスの支払いに使用する価格設定オプションを含むカテゴリを選択します。
  • クライアントが使用できるすべての価格設定オプション (クライアント サービス ID) を取得し、適切なものを選択します。
  • 支払い方法のリストを取得し、使用する予定の ID を抽出する
  • クライアント ID、価格オプション ID、および支払い方法 ID を使用して、クライアントの価格オプションを購入します。
  • クライアント ID とクラス ID を使用して購入した価格オプションの ID を取得し、以前のサービス カテゴリ ID を使用して価格オプションが正しいものであることを確認します。
  • クライアント、クラス、購入した価格設定オプションの ID を使用してクライアントをクラスに追加します

それは非常に複雑で、最終的に意図したとおりに動作するようになるまでに長い時間がかかりました.

于 2015-09-25T05:43:04.043 に答える
0

request.SourceCredentials 以外に request.UserCredentials を設定する必要がある場合があります。RequirePayment、Waitlist を削除し、Test = false に設定します。clientId と classId が存在することを確認してください。

public string SignUp(Credentials credentials, string[] clientIds, int[] classIds)
{
    var addToclassRequest = new AddClientsToClassesRequest
    {
        SourceCredentials = new SourceCredentials
        {
            SourceName = credentials.SourceName,
            Password = credentials.SourcePassword,
            SiteIDs = credentials.SiteId
        },
       ClientIDs = clientIds,
       ClassIDs = classIds,
       Test = false,
       //RequirePayment = false,
       //Waitlist = false,
       SendEmail = true
    };
    var c = _classService.AddClientsToClasses(addToclassRequest);

    return c.Message.ToString();
}
于 2015-08-06T06:54:48.920 に答える