--------------------------------------------
"object_type":"text",
"text":$변수명,
---------------- or -------------------------
"object_type":"feed",
"content": {
"title": "feed 제목",
"description": '. $변수명,
---------------------------------
text or description 내용에 변수명으로 해서 내용을 변경하고 싶은데 잘 안됩니다.
그런데
$변수명은 sql쿼리로 받은 것입니다.
id: 1010838
안녕하세요.
오류 응답 값과, 구현한 코드 전체 공유 부탁드립니다.
$rest_api_key = 'bbc871b74efxxxxxxxxxxxxxxx9a1e2a9d3';
$redirect_uri = urlencode('https://kakaonara.co.kr/index_messenger_w.php');
$login_url = "https://kauth.kakao.com/oauth/authorize?client_id={$rest_api_key}&redirect_uri={$redirect_uri}&response_type=code";
if (!isset($_GET["code"])) {
header("Location: {$login_url}");
exit;
} else {
$ii=0;
$code = $_GET["code"];
$url = 'https://kauth.kakao.com/oauth/token';
$post_params = 'grant_type=authorization_code';
$post_params .= '&client_id=' . $rest_api_key;
$post_params .= '&redirect_uri=' . $redirect_uri;
$post_params .= '&code=' . $code;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = json_decode(curl_exec($ch));
curl_close($ch);
$p_ms_message_text = $쿼리SELECT 에서 값 불러오는곳 )
$stmt2 = $pjhDB_conn->prepare("SELECT * FROM kara_member WHERE k_kakao_id = '$session_kakao_id' and ms_time = '$p_ms_time'");
$stmt2->bind_param("ss", $session_kakao_id, $p_ms_time);
$stmt2->execute();
$result2 = $stmt2->get_result();
$p_k_kakao_uuid = array(); // uuid를 저장할 배열 생성
while ($row = $result2->fetch_array()) {
$p_k_kakao_uuid[] = $row['k_kakao_uuid']; // 각 행의 uuid를 배열에 추가
}
foreach ($p_k_kakao_uuid as $uuid) {
echo 'k_kakao_uuid: ' . $uuid . '<br>';
}
if (isset($response->access_token)) {
$access_token = $response->access_token;
if (isset($p_k_kakao_uuid)) {
foreach ($p_k_kakao_uuid as $uuid) { // 배열을 순회
echo "uuid ---->"; echo $uuid; echo "<br>";
$url = 'https://kapi.kakao.com/v1/api/talk/friends/message/default/send';
$headers = array('Authorization: Bearer ' . $access_token);
$post_params = 'receiver_uuids=["' . $kakao_uuid . '"]';
$post_params .= '&template_object={
"object_type":"text",
"text":". $p_ms_message_text .",
"link":{
"web_url":"http://www.kakaocorp.com"
}
}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_exec($ch);
if($response === false)
{
echo 'cURL 오류: ' . curl_error($ch);
}
else
{
// 요청이 성공적으로 이루어졌을 때의 처리를 여기에 작성하세요.
}
curl_close($ch);
}
} } else {
echo "인증에 실패하였습니다.";
}
}
오류가 나오지 않는데 메시지가 발송되지 않습니다.
x-www-form-urlencoded 데이터 형식으로 요청 하셔야 합니다.
$post_params = 'receiver_uuids=' . urlencode('[' . $kakao_uuid . ']')
. '&template_object=' . urlencode('{ "object_type": "text", ...')
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/x-www-form-urlencoded',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_params);