考えられることはすべて試しましたが、WHMCS の API への addticketreply コマンドに合わせて改行を入れることができません。PHPなどではなく、ウィンドウのアプリケーションからのものです。単純なクエリ文字列。最初の改行の前にすべての文字が含まれます。その改行の後には、メッセージは何も含まれていません。
urlencode メソッドを試してみましたが、うまくいきません。API は、エンコードされた部分を含むすべてのテキストを挿入するだけで、エンコードを解除しません。改行\n
を次のように置き換えてみまし<br>
たが、それでも WHMCS は<br>
ha haを表示するだけです
新しい行を含む API を介して完全なメッセージを取得する方法の手がかりはありますか? これに関するドキュメントは本当に不足しています。
また、変数 adminusername はまったく機能しません! フルネームを試しましたが、いいえ、ユーザー名とユーザーIDを試しましたが、いいえ、チケットの返信用にログインしたユーザー名を挿入します。私が使用しているユーザーは、フル アクセス権を持つスーパー管理者です。
API のクエリ文字列は次のようになります。
accesskey=key&adminusername=Name of Person&ticketid=488&message=asdf asdf
Nothing past that first line goes :(
sad sad sad&action=addticketreply&responsetype=json&username=admin&password=mypassword
私は投稿にIndyを使用していることに言及する必要があります。他のすべてが機能し、渡された他のコマンドは機能します。チケットが更新されても、メッセージが更新されます。最初の改行を超えることはありません。
編集コード:上記のように、IdHTTP に post パラメーターを使用してテキストをエンコードさせるので、うまくいくはずです。また、上記でも述べたように、事前にエンコードしようとしましたが、その結果、WHMCS は un-次にエンコードし、%20
とその他を表示します。と言われたので、Indy 10を使っています!だから私は最新バージョンで最新です。
j := TStringList.Create;
ret := TStringStream.Create('');
j.Text := k+params+'action='+method+'&responsetype=json&username='+username1.Text+'&password='+password;
try
htp1.Post('http'+s+'://'+url1.Text+'/includes/api.php', j, ret);
except
on E: EIdHTTPProtocolException do
result := '{"result":"error", "message":"'+htp1.ResponseText+'"}';
end;