2016-12-01 28 views
2

写真を編集するためにPho.to APIを呼び出そうとしていますが、POSTを実行しようとするたびに同じエラーが発生します。私はダブルとトリプル私のapp_idと私のkeyをチェックして、私は間違って何をしているのか分からない。私は現在、このAPIを呼び出すためにARC Chrome Extensionを使用しているので、まだその部分をコーディングし始めていない、私はちょうどそれが動作することを確認するためにAPIから実際の応答を取得しようとしています。Pho.to APIを呼び出すときにエラーが発生する

私は彼らのドキュメントの指示に従いました。ここでは、参照用のリンクです:ここでhttp://developers.pho.to/documentation/sending-requests

は私のAPIコールは次のとおりです。

http://opeapi.ws.pho.to/addtask?APP_ID=<my-app-id>&KEY=<my-key>&SIGN_DATA=910ceb5bdb238b9248a34cce8b29ba64d5f239df 

そして、ここでは、私は戻って取得応答が(200にだまされてはいけない)である:

Status: 200 OK 

<?xml version="1.0" ?> 
<image_process_response> 
    <status>SecurityError</status> 
    <err_code>614</err_code> 
    <description>Error in POST parameters: one or more parameters (DATA , SIGN_DATA or APP_ID) are empty</description> 
</image_process_response> 

ここで私はSIGN_DATAためのSHA1を作成するために使用するPHPのコードは次のとおりです。

<?php 
    echo hash_hmac('SHA1', '<image_process_call><lang>en</lang><image_url order="1">http://www.w3schools.com/html/pic_mountain.jpg</image_url><methods_list><method order="1"><name>desaturation</name></method><method order="2"><name>cartoon</name><params>fill_solid_color=1;target_color=(255,255,255);border_strength=20;border_width=3</params></method></methods_list><result_format>png</result_format><result_size>600</result_size></image_process_call>','<my-key>'); 
?> 

上記のXMLは、可読性のためにフォーマットされています:

<image_process_call> 
    <lang>en</lang> 
    <image_url order="1">http://www.w3schools.com/html/pic_mountain.jpg</image_url> 
    <methods_list> 
     <method order="1"> 
      <name>desaturation</name> 
     </method> 
     <method order="2"> 
      <name>cartoon</name> 
      <params>fill_solid_color=1;target_color=(255,255,255);border_strength=20;border_width=3</params> 
     </method> 
    </methods_list> 
    <result_format>png</result_format> 
    <result_size>600</result_size> 
</image_process_call> 

助けていただければ幸いです。前もって感謝します!

+0

「DATA」と「SIGN_DATA」の両方を送信してはいけませんか? 'hmac'はAPIが元のXMLコンテンツを元に戻すことができないハッシュを返します。 。 '例外SecurityError 無効SIGN_DATAパラメータ' –

+0

@u_mulder問題の部分を修正しました。私も ' en'を削除しました。これでapiが処理されます。助けてくれてありがとう! – youravgjoe

+0

@u_mulderをその:私は、ペイロードの残りの部分と一緒にデータをアップ送信、そして今、私はこのエラーを取得しています試してみました – youravgjoe

答えて

3

私は何が間違っているかを考え出しました。ここでは、このAPIを使用して同様の問題に実行する他の誰のための私の詳細な解決策は、(プラットフォームに関係なく)である:問題の

一部は(@u_mulderが指摘したように)DATAニーズはそれほどSIGNED_DATAと一緒にアップ送信するということですもう片方の側でSHA1をデコードすることができます。

私の問題を解決した他の部分は、<lang>en</lang>を削除していました。何らかの理由で返されていたのは、とにかくError 613: Invalid SIGN_DATA parameter.英語がデフォルトの言語なので、不要でした。 URLエンコードされていることを

http://opeapi.ws.pho.to/addtask/?app_id=<my-app-id>&key=<my-key>9&sign_data=e456c393d11797c1a2945a85dd49ba2208cc66de&data=%3Cimage_process_call%3E%3Cimage_url+order%3D%221%22%3Ehttp%3A%2F%2Fwww.heroesandheartbreakers.com%2Fimages%2Fstories%2Fblogarticles%2F2016%2FJanuary2016%2FTV-Recap-Arrow-4x11-Olicity-is-home-470.jpg%3C%2Fimage_url%3E%3Cmethods_list%3E%3Cmethod+order%3D%221%22%3E%3Cname%3Ecartoon%3C%2Fname%3E%3Cparams%3Efill_solid_color%3D1%3Btarget_color%3D%28255%2C255%2C255%29%3Bborder_strength%3D20%3Bborder_width%3D1%3C%2Fparams%3E%3C%2Fmethod%3E%3C%2Fmethods_list%3E%3Cresult_format%3Epng%3C%2Fresult_format%3E%3Cresult_size%3E1500%3C%2Fresult_size%3E%3C%2Fimage_process_call%3E 

お知らせ:

だからそれらのものを固定した後、ここに私の最終的なURLです。これは必要かもしれないし、必要でないかもしれません。

<?xml version="1.0" ?> 
<image_process_response> 
    <request_id>010afc13-6bba-44dd-b278-4f3bd1e41946</request_id> 
    <status>OK</status> 
    <description /> 
    <err_code>0</err_code> 
</image_process_response> 

そして私は今、編集した画像のURLを取得するにはrequest_idを使用することができます:

これは返し

http://opeapi.ws.pho.to/getresult?request_id=010afc13-6bba-44dd-b278-4f3bd1e41946 

次のXMLを返します:だから

<image_process_response> 
    <request_id>010afc13-6bba-44dd-b278-4f3bd1e41946</request_id> 
    <status>OK</status> 
    <result_url>http://worker-images.ws.pho.to/i1/3BCB160A-691A-458B-9161-67AFA8A9EAA0.png</result_url> 
    <result_url_alt>http://worker-images.ws.pho.to.s3.amazonaws.com/i1/3BCB160A-691A-458B-9161-67AFA8A9EAA0.png</result_url_alt> 
    <nowm_image_url>http://worker-images.ws.pho.to/i1/3BCB160A-691A-458B-9161-67AFA8A9EAA0.png</nowm_image_url> 
</image_process_response> 

を最終編集画像のURLはhttp://worker-images.ws.pho.to/i1/3BCB160A-691A-458B-9161-67AFA8A9EAA0.pngです(リンクは24時間後に失効します)

これで完了です!https://github.com/youravgjoe/ColoringPageGenerator

前:

Before

後:

あなたは私は簡単なAndroidアプリでは、このAPIを実装する方法をチェックアウトしたい場合は、ここではgithubのリンクですAfter

0

私にとっては、(A)ではなく、SHA1を必ず使用してエラーを修正しました何らかの理由でSHA256(私自身の誤り)と(B)sign_dataの値は小文字でなければなりません。

関連する問題