Das Problem war, dass ich vergaß, [] in das Feld Tasten zu setzen.
sub post_url_button_to_facebook {
my $reply_recipient = shift;
my %hash = ('recipient'=>{'id'=>$reply_recipient},'message'=>{'attachment'=>{'type'=>'template','payload'=>{'template_type'=>'button','text'=>"This my link",'buttons'=>[{'type'=>'web_url','url'=>'https://www.arx.gr/','title'=>"Dev's Website"}] }}});
my $post_json_data = JSON::encode_json(\%hash);
my $ua = LWP::UserAgent->new;
my $url = "https://graph.facebook.com/v2.9/me/messages?access_token=" . $permanent_token;
my $req = HTTP::Request->new(POST => $url);
$req->header('Content-type' => 'application/json');
$req->content($post_json_data);
my $resp = $ua->request($req);
if ($resp->is_success) {
my $message = $resp->decoded_content;
send_status_ok();
warn "Received reply: $message\n";
}
else {
warn "HTTP POST error code: ", $resp->code, "\n";
warn "HTTP POST error message: ", $resp->message, "\n";
}
}
Ist $ perlmanent_token definiert? Ist es eine globale Variable? Es ist nicht lexikalisch in deinem Sub. Sie können sich die vollständige Anfrage ansehen, indem Sie eine 'print $ req-> as_string' oder' $ req-> dump 'hinzufügen, bevor Sie sie senden. Alternativ können Sie LWP :: ConsoleLogger :: Everywhere laden, um die gesamte Transaktion zu überprüfen, um festzustellen, was nicht stimmt. – simbabque
Ja, es ist definiert. –
Ich sehe keine 'Nachrichten'-Kante vom Knoten 'user'. Meintest du "Posteingang"? – Borodin