あるネットサービスでの投稿を自動でツイートしてくれるような機能を作りたいと思っています
そこでPOSTで取得した値をURLに追加してツイートしたいのですが、ツイッターの方でリンクとして認識してくれません。
取得する値は数字で、$_POST['id']の値が10だった場合
https://example.com?id=10 のような内容を入れてツイートしたいと思っています。
ですがツイートしてみると[https://example.com?id=]10 のように[]の部分はURLとして青色表示になるのですが取得したidは普通の文字として表示されてしまいます。
php
1<?php 2 require "twitteroauth/autoload.php"; 3 use Abraham\TwitterOAuth\TwitterOAuth; 4 5 $id = $_POST['id']; 6 7 $consumerKey = "***"; 8 $consumerSecret = "***"; 9 $accessToken = "***"; 10 $accessTokenSecret = "***"; 11 12 13 $twitter = new TwitterOAuth($consumerKey, $consumerSecret, $accessToken, $accessTokenSecret); 14 $id_url = "https://example.com?id=".$id; 15 16 $params = [ 17 'status' => "投稿されました\n" . "$id_url" 18 ]; 19 20 $result = $twitter->post("statuses/update", $params);
取得したidの値が文字列として認識されていないことが原因だと思っているのですが、var_dump($_POST['id'])で確認してみるとこの時点でStringになっていました。 strval($id)などを入れてみてもダメでした
また、$id = $_POST['id']ではなく、 $id = 10とした場合はstrval($id)で文字列に変換するとちゃんとurlとして認識されていました。
とても初歩的な問題のような気がしますが、中々解決策が見つからず困っています。
追記
var_dump($_GET['id']);とvar_dump($params);の結果は以下のようになっていました
string(2) "74" //var_dump($_GET['id']) array(1) { ["status"]=> string(47) "投稿されました https://example.com?id=74" } //var_dump($params)
回答3件
あなたの回答
tips
プレビュー