2017-03-16 21 views
2

私はこのコードを持っている:私はPerlのにそれを変換したいPerlの同等

request({ 
    uri: 'https://graph.facebook.com/v2.6/me/messages', 
    qs: { access_token: PAGE_ACCESS_TOKEN }, 
    method: 'POST', 
    json: messageData 
    }) 

は、私がこれまで持っていることは次のとおりです。

my $req = HTTP::Request->new('POST', 'https://graph.facebook.com/v2.6/me/messages'); 
$req->header('Content-Type' => 'application/json'); 
$req->content($messageData); 

私はわからない方法

qs: { access_token: PAGE_ACCESS_TOKEN }, 

URLに追加するクエリパラメータを指定します。これは、Perlコードに次の行を組み込むことができます。

ネットを検索しようとしましたが、ほとんどの例では、jsonコンテンツまたはクエリ文字列が送信されますが、両方が送信されることはありません。私は、JavaScriptコードへの私の解釈が正しい場合、両方を送ることができるものが必要です。

私を導く人には、事前に感謝します。

+0

カスタムhttpヘッダーであるかどうかわかりませんが、「クエリ文字列」を想定していましたが、カスタムヘッダーとして宣言してください。それを今試みている。それを指摘してくれてありがとう。 – Sophia

答えて

5

モジュール(場合によってはURI::QueryParamモジュールが補足されています)を使用して、URLを構築(および操​​作)することができます。

use HTTP::Request::Common qw(POST); 
use JSON::XS    qw(encode_json); 
use URI     qw(); 

my $message_data = encode_json(...); 

my $url = URI->new('https://graph.facebook.com/v2.6/me/messages'); 
$url->query_form(access_token => PAGE_ACCESS_TOKEN); 

my $req = POST($url, 
    Content_Type => 'application/json', 
    Content  => $message_data, 
); 
+0

それは働いた!ありがとう、あなたは私の救い主です! – Sophia