728x90
저번에 CURL로 API연동 해서 테스트서버에 셋팅해놧엇는데
실서버 배포하면서 API가 안나왓다..
실서버에 내IP만 접속가능하도록 걸어놔서 이거때문인가 싶었는데
curl버전인가 확인해봤는데 TLS버전이 낮으면 curl이 안써지는 경우가 있다고 한다.
실서버가 너무 오래되서 버전이 낮은거같아서 챗gpt랑 curl로 작업했던걸 fsockopen로 바꿧다.
<?
$type = $_POST['type'];
$instaKey = "Your_API_Key";
// 인스타그램 API URL 설정
$instaApi = "/me/media?fields=id,caption,media_type,media_url,thumbnail_url,permalink,username&access_token=".$instaKey;
$host = "graph.instagram.com";
$port = 443;
// fsockopen을 사용하여 연결 시도
$fp = fsockopen("ssl://".$host, $port, $errno, $errstr, 30);
if (!$fp) {
// 연결 실패 시 에러 메시지 출력
echo "ERROR: $errno - $errstr<br />\n";
} else {
// HTTP GET 요청 작성
$out = "GET " . $instaApi . " HTTP/1.1\r\n";
$out .= "Host: " . $host . "\r\n";
$out .= "User-Agent: My User Agent\r\n";
$out .= "Connection: Close\r\n\r\n";
// 요청 전송
fwrite($fp, $out);
// 응답 읽기
$response = '';
while (!feof($fp)) {
$response .= fgets($fp, 128);
}
// 소켓 닫기
fclose($fp);
// HTTP 헤더와 본문 분리
list($header, $body) = explode("\r\n\r\n", $response, 2);
// JSON 형식으로 응답 출력
echo json_encode($body);
}
?>
php코드만 바꿔주면 끝!!
데이터 잘 넘어가고 잘 넘어온다!
아마 fsockopen() 써야되서 찾아보는사람은 없을거같은데 혹시나해서 정리해둬본다.
728x90
'PHP' 카테고리의 다른 글
php.ini 수정없이 php설정값 바꾸기 (0) | 2024.09.20 |
---|---|
PHP 출력문 비교 echo, print, print_r, var_dumb (0) | 2024.07.31 |
PHP file_get_contents(), curl (0) | 2024.07.02 |
봇 자동등록 방지 로직 (0) | 2024.05.31 |
PHP 캡챠 연동 (0) | 2024.05.30 |