POST と Content-Type application/xml を使用してオブジェクトを作成することに成功しました
また、Content-Type application/x-www-form-urlencoded を使用して、指定した URI に応じてすべてのオブジェクト タイプを返す空白のリクエスト ボディでクエリを実行することに成功しました。
リクエスト本文で PageNum=1&ResultsPerPage=1 のようなものを使用して同じことを行うこともできます。それを署名に組み込む方法を見つけたので、有効な応答が得られます。
ただし、どのようにフォーマットしても、フィルター (Filter=FAMILYNAME :EQUALS: Doe のような基本的なもの) を使用しようとすると、401 応答以外は得られません。[RFC3986] パーセント エンコーディングを使用してすべてのパラメータ名と値をエスケープする方法について、OAuth Core 1.0 Revision A の仕様を読みました。ただし、手順が不足しているか、フォーマットが間違っているように感じます。Intuit のフォーラムで正確に正しい形式を検索すると、一貫性のない情報が見つかりました。
これに関するヘルプは大歓迎です。私は今、良い週のためにこれに苦労してきました.
フィルターを使用しようとすると、次のような応答が返されます: HTTP Status 401 - message=Exception authenticationing OAuth; errorCode=003200; statusCode=401
- - アップデート - -
新しい IPP 開発者ツール - IPP API エクスプローラーでフィルターを使用しようとすると、同じエラーが表示されます。IDS V2 QBO API Explorer を使用しています。そのツールを使用してすべての投稿を取得でき、応答にはすべての顧客が表示されますが、フィルターを使用しようとすると、サーバー エラー 401 - 権限がありません: 資格情報が無効なため、アクセスが拒否されました。指定した資格情報を使用してこのディレクトリまたはページを表示する権限がありません。
何か案は?API Explorer ツールから同じエラーが発生した場合、問題はまったく別のものであると考えさせられます。
----最終更新----
私は最終的にフィルターで成功し、私の問題が何であるかを理解したと信じています. 「PageNum=1&ResultsPerPage=1」のようなページネーションを使用してクエリを実行できるのではないかと常に疑っていましたが、「Filter=FAMILYNAME :EQUALS: Doe」のようなクエリを取得できませんでした。フィルター形式の空白に問題があると思われました。以前にこれを追跡するのを思いとどまらせたのは、IDS V2 QBO API Explorer でフィルターを機能させることができなかったことです。それは私に何か他のことが起こっているのではないかと疑った. 私は、API Explorer をすべて無視して、一方の方法では機能するのに、他方の方法では機能しない理由に集中することにしました。
私の問題は、署名内のフィルターの値の不適切なエンコードに帰着したと思います。これは、私が受け取っていた 401 の無効な署名エラーを説明しています。
「Filter=Name :EQUALS: Doe」は、正規化すると「Filter=Name%20%3AEQUALS%20%3ADoe」になります。
「Filter%3DName%2520%253AEQUALS%2520%253ADoe」を与えるべきパーセントエンコーディング。
本質的に、空白とコロンを「二重」にエンコードする必要がありますが、等号はエンコードしません。エンコーディングを実行するために多くの順列を試しましたが、私の間違いは、「二重」エンコーディングではなかったか、二重エンコーディング中に「=」記号を含めていたことだと思います。いずれにせよ、あなたの署名を壊します。皆様のご意見をお寄せいただきありがとうございます。