Twitter アカウントを持っているかどうかを確認したい Web サイトのリストがあります。APIでユーザー名のURL検索があるかどうか、またはこの性質のものがあるかどうか、私は興味がありました。私は読んで周りを見回してきました。しかし、私は不足しています。関数を実行して作業を行うことができる場合、これを手動で行う必要はありません。このトピックに関するフィードバックをいただければ幸いです。
良い一日!
Twitter アカウントを持っているかどうかを確認したい Web サイトのリストがあります。APIでユーザー名のURL検索があるかどうか、またはこの性質のものがあるかどうか、私は興味がありました。私は読んで周りを見回してきました。しかし、私は不足しています。関数を実行して作業を行うことができる場合、これを手動で行う必要はありません。このトピックに関するフィードバックをいただければ幸いです。
良い一日!
上記のコメントで説明したように、twitter API のバージョン 1 は非推奨であり、まもなく完全に削除されます。これは、単純なリクエストが削除されると機能しなくなることを意味します。
基本的に、それ以降、Twitter から何らかのデータを取得するには、バージョン1.1 APIを使用して認証済みのリクエストを行う必要があります。
PHP を使用してバージョン 1.1 API を呼び出すために必要な正確な手順を、必要な人のためにきれいな写真で説明する投稿をここに書きました。
上記の投稿を完全に読んだ後、あなたがしたいことは次のとおりです。
PHP を少し知っていることを前提としています。これは、Twitter v1.1 APIを使用して、ユーザー名が存在するかどうかを確認する方法です。
ユーザーのタイムラインを取得するためのドキュメントをご覧ください。ドキュメントには、 screen_name パラメータを使用できると記載されています。また、 GET リクエストが必要であることもわかっています。
上記の情報と私のクラスがあれば、ユーザーのリクエストを非常に簡単に実行できます。
require_once "TwitterAPIExchange.php";
// As my post explains, these are the keys you get from the twitter dev site
$settings = array(
'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
'consumer_key' => "YOUR_CONSUMER_KEY",
'consumer_secret' => "YOUR_CONSUMER_SECRET"
);
// This is the username you want to check. You can get it however you want. Just place it into this $username variable.
$username = 'USERNAMEHERE';
$url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
$requestMethod = 'GET';
$getfield = '?screen_name='.$username;
$twitter = new TwitterAPIExchange($settings);
$result = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
これで、結果が$result
変数に格納されました。ここでやりたいことができます。ユーザーが存在するかどうかを確認したいのでvar_dump()
、結果を見て、ユーザーが存在するかどうかを調べる方法を探します。明らかに、実際のユーザーは含まれません。false
またはが含まれる場合がありますnull
。
頭の中でわからないので、$result->user
が に等しいとしましょうfalse
。あなたは単にこれを行うでしょう:
if (!$result->user)
{
echo "The user doesn't exist!";
}
else
{
echo "The user exists!";
}
... または、省略形 (このような小さなことを投稿に追加するのが好きです)
echo (!$result->user) ? "Doesn't exist! :(" : "Exists!";
以下を使用して、少し調査を行います。
上記で説明したJimboの非常に便利な PHP クラスに基づいて、ユーザーが存在するかどうかを確認するコードを次に示します。
まず、json_decode を使用$result
して PHP 配列に変換します。true
結果の配列でオブジェクトを取得しないように、2 番目のパラメーターを に設定してください。
$result = json_decode($result, true);
ここで、screen_name
配列キーが存在するかどうかを確認する必要がありますが、array_key_exists は多次元配列を再帰的に調べません。したがって、ここにある新しい関数が必要になります。
function array_key_exists_r($needle, $haystack) {
$result = array_key_exists($needle, $haystack);
if ($result) return $result;
foreach ($haystack as $v) {
if (is_array($v)) {
$result = array_key_exists_r($needle, $v);
}
if ($result) return $result;
}
return $result;
}
以下は、すべてを機能させる最後のコードです。$result
配列内で指している場所に注意してください。Twitter API は $username で指定されたユーザーのタイムラインを返すため、基本的には最初のツイートを投稿したユーザーの screen_name を見ています。
$result = json_decode($result, true);
if ( array_key_exists_r('screen_name', $result ) ) {
if ( $result[0]['user']['screen_name'] == $username ) {
// The username exists
}
} else {
// The username doesn't exist
}
ユーザー名が存在するかどうかを確認するより良い方法があるかどうかはわかりません。代わりにエラーコードのチェックを使用してください。