데브포일 홈
WordPress 자동화
Guest
STAGE 8 · Lv.43

외부 서비스 API 연동

Telegram Bot API, Slack Webhooks, Discord, Google Sheets API를 WordPress에서 직접 연동하는 방법을 배웁니다.

WordPress에서 외부 API 호출하기

wp_remote_post()와 wp_remote_get()

WordPress에서 외부 API를 호출할 때는 PHP의 cURL 함수를 직접 사용하는 대신, WordPress의 HTTP API 함수를 사용하는 것이 권장됩니다. 이 함수들은 다양한 환경에서의 호환성과 보안을 보장합니다.


주요 함수:

wp_remote_get($url, $args) - GET 요청

wp_remote_post($url, $args) - POST 요청

wp_remote_request($url, $args) - 모든 HTTP 메서드


응답 처리 함수:

wp_remote_retrieve_body($response) - 응답 본문

wp_remote_retrieve_response_code($response) - HTTP 상태 코드

wp_remote_retrieve_headers($response) - 응답 헤더

is_wp_error($response) - 에러 확인

// 기본적인 외부 API 호출 패턴 $response = wp_remote_post($url, [ 'headers' => [ 'Content-Type' => 'application/json', 'Authorization' => 'Bearer ' . $token ], 'body' => json_encode($data), 'timeout' => 30 ]); // 에러 확인 if (is_wp_error($response)) { $error_message = $response->get_error_message(); error_log('API Error: ' . $error_message); return false; } // 상태 코드 확인 $status_code = wp_remote_retrieve_response_code( $response); if ($status_code !== 200) { error_log('API returned: ' . $status_code); return false; } // 응답 본문 파싱 $body = wp_remote_retrieve_body($response); $data = json_decode($body, true);

Telegram Bot API 연동

Telegram Bot API 개요

Telegram Bot API는 무료이며 사용이 간편합니다. 별도의 OAuth나 앱 등록 없이 Bot Token만으로 메시지를 전송할 수 있어 WordPress 알림 시스템으로 매우 적합합니다.


API 기본 URL: https://api.telegram.org/bot{TOKEN}/


주요 메서드:

sendMessage - 텍스트 메시지 전송

sendPhoto - 이미지 전송

sendDocument - 파일 전송

sendLocation - 위치 전송

getUpdates - 봇에 온 메시지 확인

getMe - 봇 정보 확인

// WordPress에서 Telegram 메시지 보내기 function send_telegram_message($chat_id, $message) { $token = '123456789:ABCdefGHIjklMNOpqr'; $url = "https://api.telegram.org/bot{$token}/sendMessage"; $response = wp_remote_post($url, [ 'body' => [ 'chat_id' => $chat_id, 'text' => $message, 'parse_mode' => 'HTML', 'disable_web_page_preview' => false ] ]); return !is_wp_error($response); } // 새 글 발행 시 Telegram 알림 add_action('publish_post', function($post_id) { $post = get_post($post_id); $url = get_permalink($post_id); $message = "<b>📰 새 글 발행</b>\n\n" . "<b>" . $post->post_title . "</b>\n" . $url . "\n\n" . "작성: " . get_the_author_meta( 'display_name', $post->post_author); send_telegram_message('-100123456789', $message); });

Telegram 고급 기능: 인라인 키보드

Telegram 메시지에 클릭 가능한 버튼(인라인 키보드)을 추가하면 더 인터랙티브한 알림을 만들 수 있습니다.

// 인라인 키보드가 포함된 메시지 function send_telegram_with_buttons( $chat_id, $message, $url) { $token = 'YOUR_BOT_TOKEN'; $api_url = "https://api.telegram.org/bot{$token}/sendMessage"; $keyboard = [ 'inline_keyboard' => [ [ ['text' => '📄 글 읽기', 'url' => $url], ['text' => '💬 공유하기', 'url' => 'https://t.me/share/url?url=' . urlencode($url)] ] ] ]; return wp_remote_post($api_url, [ 'body' => [ 'chat_id' => $chat_id, 'text' => $message, 'parse_mode' => 'HTML', 'reply_markup' => json_encode( $keyboard) ] ]); }
🔒
여기까지는 미리보기입니다
외부 서비스 API 연동
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.
Google로 3초 만에 시작 →🧵 Threads로 시작무료 공개 강의 둘러보기 (Lv.1~3)