<php? date_default_timezone_set('Asia/Taipei'); $sRootDir = $_SERVER['DOCUMENT_ROOT']; $channelAccessToken = '您的 channel Access Token'; $bodyMsg = file_get_contents('php://input'); // LINE 不會幫我們記錄, 所以要自己寫 log // 這段不是必要, 只是方便自己除錯 $sLogfile = 'log_'.date('Ymd').'.log'; // 指定 log 檔名, 一天一個檔, 檔名格式為: log_yyyymmdd.log $fp = fopen($sLogfile, "a+"); fwrite($fp , print_r(date('Y-m-d H:i:s').', Recive: '.$bodyMsg."\n", true)); fclose($fp); $obj = json_decode($bodyMsg, true); $payload = null; $event = null; foreach ($obj['events'] as &$event) { switch($event['type']) { // 如果您有在 LINE 官方帳號後台設定 歡迎詞, // user 加入好友後也會收到 case 'follow': // user 加入好友後, 程式自己要做的事 $userId = $event['source']['userId']; $sUsername = getUsername($sUser); break; ... ... } } function getUsername($user_id) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.line.me/v2/bot/profile/$user_id"); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'Authorization: Bearer ' . $GLOBALS['channelAccessToken'] ]); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); if ($result===false) { // 查詢失敗, return 'NG'; } $data = json_decode($result, true); return $data["displayName"]; } ?>
沒有留言:
張貼留言