<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Social  |  takeHo（たけほ）のへなちょこ台帳</title>
	<atom:link href="https://blog.takeho.com/tag/social/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.takeho.com</link>
	<description>いわゆる自由帳ってところです。</description>
	<lastBuildDate>Tue, 09 Dec 2025 01:18:34 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6</generator>

<image>
	<url>https://blog.takeho.com/wp-content/uploads/2024/08/icon-150x150.png</url>
	<title>Social  |  takeHo（たけほ）のへなちょこ台帳</title>
	<link>https://blog.takeho.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>CI4でソーシャルメディアログインを実装する</title>
		<link>https://blog.takeho.com/6yrfjcpbn2uicg2g9mlolhi84qccjt3w/</link>
					<comments>https://blog.takeho.com/6yrfjcpbn2uicg2g9mlolhi84qccjt3w/#respond</comments>
		
		<dc:creator><![CDATA[たけほ]]></dc:creator>
		<pubDate>Fri, 26 Jul 2024 04:59:55 +0000</pubDate>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[Composer]]></category>
		<category><![CDATA[Social]]></category>
		<guid isPermaLink="false">https://blog.takeho.com/?p=86</guid>

					<description><![CDATA[Codeigniter4でfacebookやtwitterなどのソーシャルメディアログイン機能を実装する方法について説明します。 ソーシャルメディアログイン機能の実装にはHybridauthのライブラリを使用します。 H [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Codeigniter4でfacebookやtwitterなどのソーシャルメディアログイン機能を実装する方法について説明します。</p>



<p>ソーシャルメディアログイン機能の実装にはHybridauthのライブラリを使用します。</p>



<h3 class="wp-block-heading"><span id="toc1">Hybridauthライブラリのインストール</span></h3>



<p>次のコマンドを実行してHybridauthライブラリをインストールします。</p>



<pre class="wp-block-code"><code># composer require hybridauth/hybridauth</code></pre>



<h3 class="wp-block-heading"><span id="toc2">設定ファイルの作成</span></h3>



<p>Configディレクトリ内にProvider.phpを以下の内容で作成します。</p>



<pre class="wp-block-code"><code>&lt;?php
 
namespace App\Config;

use CodeIgniter\Config\BaseConfig;

class Provider extends BaseConfig
{
  public $configure = &#91;
    // callback
    'callback' => 'https://www.example.com/auth/authenticate',
    'providers' => &#91;
      // facebook.
      'Facebook' => &#91;
        'enabled' => true,
        'keys' => &#91;
          'id' => '&lt;アプリID>',
          'secret' => '&lt;秘密キー>',
        ],
      ],
      // twitter
      'Twitter' => &#91;
        'enabled' => true,
        'keys' => &#91;
          'key' => '&lt;キー>',
          'secret' => '&lt;秘密キー>',
        ],
      ],
    ],
  ];
}</code></pre>



<p>アプリID、キー、秘密キーは各SNSのデベロッパーサイトで発行された値を指定します。</p>



<h3 class="wp-block-heading"><span id="toc3">コントローラーの作成</span></h3>



<p>Authコントローラーを作成します。</p>



<pre class="wp-block-code"><code>&lt;?php

namespace App\Controllers;

use Hybridauth\Hybridauth;
use Hybridauth\HttpClient;

class Auth extends BaseController
{
  public function index()
  {
    return view('auth');
  } 
  
  public function authenticate($provider = false)
  {
    $userProfile = &#91;];
    $config = new \App\Config\Provider();
    try {
      $auth = new Hybridauth($config->configure);
      $adapter = $auth->authenticate($provider);
      $tokens = $adapter->getAccessToken();
      $userProfile = $adapter->getUserProfile();
      $adapter->disconnect();
      
    } catch (\Exception $e) {
      echo $e->getMessage();
    }

    return view('result', &#91;'userProfile' => $userProfile]);
  }</code></pre>



<h3 class="wp-block-heading"><span id="toc4">ビューの作成</span></h3>



<p>ビューはログインとログイン後の画面を用意します。</p>



<h4 class="wp-block-heading"><span id="toc5">auth.phpの作成</span></h4>



<p>Viewsディレクトリにauth.phpを以下の内容で作成します。</p>



<pre class="wp-block-code"><code>&lt;html>
&lt;head>
&lt;title>ソーシャルメディアログインテスト&lt;/title>

&lt;meta charset="utf-8">
&lt;meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8">
&lt;/head>
&lt;body>
&lt;a href="&lt;?php echo base_url('auth/authenticate/Facebook') ?>">Facebookアカウントでログイン&lt;/a>&lt;br>
&lt;a href="&lt;?php echo base_url('auth/authenticate/Twitter') ?>">Twitterアカウントでログイン&lt;/a>
&lt;/body>
&lt;/html></code></pre>



<h4 class="wp-block-heading"><span id="toc6">result.phpの作成</span></h4>



<p>Viewsディレクトリにresult.phpを以下の内容で作成します。</p>



<pre class="wp-block-code"><code>&lt;html>
&lt;head>
&lt;title>ソーシャルメディアログインテスト&lt;/title>

&lt;meta charset="utf-8">
&lt;meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8">
&lt;/head>
&lt;body>
&lt;?php var_dump($userProfile) ?>
&lt;/body>
&lt;/html></code></pre>



<h3 class="wp-block-heading"><span id="toc7">動作確認</span></h3>



<p>次のURLへアクセスしてログインできるか確認します。</p>



<pre class="wp-block-code"><code>https:&#47;&#47;www.example.com/auth</code></pre>



<p>正常に動作していればソーシャルメディア上の登録ID、プロフィール名、サブネイル画像URLの表示が確認できます。</p>





<a rel="noopener" href="https://hybridauth.github.io" title="Hybridauth Social Login PHP Library" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fhybridauth.github.io?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Hybridauth Social Login PHP Library</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://hybridauth.github.io" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">hybridauth.github.io</div></div></div></div></a>

]]></content:encoded>
					
					<wfw:commentRss>https://blog.takeho.com/6yrfjcpbn2uicg2g9mlolhi84qccjt3w/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
