/** * Obtain the user information from Twitter. * * @return Response */ public function handleProviderCallback() { $package_from_twitter = Socialite::driver('twitter')->user(); if ($package_from_twitter) { $twitter_user = TwitterUser::where('twitter_id', $package_from_twitter->id)->first(); if (!$twitter_user) { $twitter_user = new TwitterUser(); } $twitter_user->twitter_id = $package_from_twitter->id; $twitter_user->name = $package_from_twitter->name; $twitter_user->screen_name = $package_from_twitter->nickname; $twitter_user->description = $package_from_twitter->user['description']; $twitter_user->utc_offset = $package_from_twitter->user['utc_offset']; if (@$package_from_twitter->user['profile_banner_url']) { $twitter_user->profile_background_image_url = $package_from_twitter->user['profile_banner_url']; } $twitter_user->profile_image_url = $package_from_twitter->user['profile_image_url']; $twitter_user->updated_timestamp_utc = time(); $twitter_user->created_timestamp_utc = time(); $twitter_user->oauth_token = Input::get('oauth_token'); $twitter_user->oauth_token_secret = Input::get('oauth_verifier'); $twitter_user->save(); $user = Auth::user(); if ($user && $user->temporary == 1) { Auth::logout(); } $user = Auth::user(); if ($user) { $user->twitter_user_id = $twitter_user->id; $user->updated_timestamp_utc = time(); $user->most_recent_ip = request()->ip(); $user->save(); } else { $user = User::where('twitter_user_id', $twitter_user->id)->first(); if (!$user) { $user = new User(); $username = $twitter_user->screen_name; $orig_username = $username; $i = 0; $username_exists = User::where('username', $username)->first(); while ($username_exists) { $username = $orig_username . "_" . $i++; $username_exists = User::where('username', $username)->first(); } $user->username = $username; $user->twitter_user_id = $twitter_user->id; $user->name = $twitter_user->name; $user->created_timestamp_utc = time(); } $user->updated_timestamp_utc = time(); $user->most_recent_ip = request()->ip(); $user->save(); } Auth::login($user); return view('auth/killwindow'); } else { return abort(401, 'Apparently, Twitter didn\'t like you.'); } }
/** * いずれかのリストに属している全てのユーザを取得する * 事前にcreateOwnerList()を実行してDBにデータを作っておく * @return [type] [description] */ public function getExistListMember() { $members = \App\Models\TwitterUser::where('list_id', '!=', 0)->lists('screen_name', 'id')->toArray(); return $members; }