質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

Q&A

1回答

1318閲覧

WEBサイトでSNSのアカウント入力でアカウントの存在チェック

delicon

総合スコア2

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

SNS

SNS(ソーシャル・ネットワーキング・サービス)は、 人と人とのつながりを促進したり、サポートしたりすることが可能なコミュニティ型のWebサービスです。

0グッド

0クリップ

投稿2021/04/30 06:37

PHPでWEBサイトを構築していますが、
その際テキストボックスにtwitterやインスタグラムのアカウントを
入力して、そのアカウント名を元に
そのアカウント名が実際に存在し、有効なアカウントかをチェックしたいです。
例えばTwitterならhttps://twitter.com/テキストボックスで入力したアカウント名
をURLとしfile_get_contentsを利用してチェックをしていますが、
https://twitter.com/の後に何を入れても値が返ってきてURLが存在する=アカウントが正しいとなります。
他にPHPでSNSのアカウントの存在チェックをする方法はありますでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/04/30 21:07

アカウントチェックはなぜ必要なのでしょうか? 一般的には API を利用し確認すべきだと考えます。 なので、背景が分かれば適切なアドバイスが付くかと。
guest

回答1

0

コードが示されていませんが、想像するに

PHP

1$contents = file_get_contents(/*省略*/); 2if ($contents === false) {/*失敗*/} 3

こんな感じのコードですか?もしそうなら、$http_response_header[0]にHTTPステータスコードが入っていますので、それを確認して成否を判断する必要があります。

ですが、file_get_contentsよりcurlのほうが確実そうです。そちらを検討してください。

投稿2021/04/30 07:06

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

delicon

2021/04/30 09:56

ご回答ありがとうございます。 $url = "https://www.instagram.com/iwaiyuki_neko"; //cURLセッションを初期化する $ch = curl_init(); //URLとオプションを指定する curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); //URLの情報を取得する $res = curl_exec($ch); // $response = @file_get_contents($value, false, $options); dd($res); を試したところ ""が返ってきます。 また$url = "https://www.instagram.com/iwaiyuki_nekoaaaaaa"; の場合も""が返ってきました。
itagagaki

2021/04/30 10:04

`curl_exec`の次に`curl_getinfo($ch, CURLINFO_HTTP_CODE)`を呼びましょう。”200” なら成功です。
delicon

2021/04/30 11:47

$result = false; $url = "https://www.yahoo.co.jp/"; //cURLセッションを初期化する $ch = curl_init(); //URLとオプションを指定する curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //URLの情報を取得する $res = curl_exec($ch); $info = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); // $response = @file_get_contents($value, false, $options); dd($info);  のように記載したら「403」が返ってきます。 $url = "https://www.instagram.com/iwaiyuki_neko"; や$url = "https://www.instagram.com/iwaiyuki_nekoaaaaaa"; をセットした場合は「301」が返ってきます。
delicon

2021/05/06 08:55

すみません、HTTPステータスコードのことはわかっていますが、 httpのlocalhostから上記の処理を投げたときに 正常なアカウントは200が返ってきて、存在しないアカウントのURLは404が返ってくるのに https上のサーバから上記処理を投げたときに 正常なアカウントも存在しないアカウントも302が返ってくる原因が分かりません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問