前提・実現したいこと
PHPで作成したサイトのログイン機能にtwitterログイン機能を追加しようと考えています。
ローカル環境で実装した場合は正常に動作したのですが、レンタルサーバーに移した場合、以下のエラーメッセージが発生しました。
TwitterOAuthライブラリを使用しました。
環境での違いでどの部分が原因か、またlogin.phpとcallback.phpで修正すべき点など教えていただけたら幸いです。
発生している問題・エラーメッセージ
Parse error: syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE) in /home/*****/********/public_html/apiTest/twitteroauth-main/src/TwitterOAuth.php on line 22
該当のソースコード
login.php
1login.php 2<?php 3session_start(); 4ini_set('display_errors', 1); 5 6define("Consumer_Key", "******"); 7define("Consumer_Secret", "********"); 8 9//Callback URL 10define('Callback', 'http://*****/apiTest/callback.php'); 11 12require("twitteroauth-main/autoload.php"); 13use Abraham\TwitterOAuth\TwitterOAuth; 14 15$connection = new TwitterOAuth(Consumer_Key, Consumer_Secret); 16$request_token = $connection->oauth("oauth/request_token", array("oauth_callback" => Callback)); 17 18$_SESSION['oauth_token'] = $request_token['oauth_token']; 19$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; 20 21$url = $connection->url("oauth/authorize", array("oauth_token" => $request_token['oauth_token'])); 22header('Location: ' . $url);
callback.php <?php session_start(); define("Consumer_Key", "*******"); define("Consumer_Secret", "****************"); //ライブラリを読み込む require "twitteroauth-main/autoload.php"; use Abraham\TwitterOAuth\TwitterOAuth; //oauth_tokenとoauth_verifierを取得 if($_SESSION['oauth_token'] == $_GET['oauth_token'] and $_GET['oauth_verifier']){ //Twitterからアクセストークンを取得する $connection = new TwitterOAuth(Consumer_Key, Consumer_Secret, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); $access_token = $connection->oauth('oauth/access_token', array('oauth_verifier' => $_GET['oauth_verifier'], 'oauth_token'=> $_GET['oauth_token'])); //取得したアクセストークンでユーザ情報を取得 $user_connection = new TwitterOAuth(Consumer_Key, Consumer_Secret, $access_token['oauth_token'], $access_token['oauth_token_secret']); $user_info = $user_connection->get('account/verify_credentials'); // ユーザ情報の展開 //var_dump($user_info); //適当にユーザ情報を取得 $id = $user_info->id; $name = $user_info->name; $screen_name = $user_info->screen_name; $profile_image_url_https = $user_info->profile_image_url_https; $text = $user_info->status->text; //各値をセッションに入れる $_SESSION['access_token'] = $access_token; $_SESSION['id'] = $id; $_SESSION['name'] = $name; $_SESSION['screen_name'] = $screen_name; $_SESSION['text'] = $text; $_SESSION['profile_image_url_https'] = $profile_image_url_https; header('Location: index.php'); exit(); }else{ header('Location: index.php'); exit(); }
エラーメッセージの出た22行目付近のコードがこちらになります。
TwitterOAuth.php <?php /** * The most popular PHP library for use with the Twitter OAuth REST API. * * @license MIT */ declare(strict_types=1); namespace Abraham\TwitterOAuth; use Abraham\TwitterOAuth\Util\JsonDecoder; /** * TwitterOAuth class for interacting with the Twitter API. * * @author Abraham Williams <abraham@abrah.am> */ class TwitterOAuth extends Config { private const API_VERSION = '1.1'; private const API_HOST = 'https://api.twitter.com'; private const UPLOAD_HOST = 'https://upload.twitter.com'; /** @var Response details about the result of the last request */ private $response; /** @var string|null Application bearer token */ private $bearer; /** @var Consumer Twitter application details */ private $consumer; /** @var Token|null User access token details */ private $token; /** @var HmacSha1 OAuth 1 signature type used by Twitter */ private $signatureMethod; /** @var int Number of attempts we made for the request */ private $attempts = 0;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/12 03:23
2020/08/12 03:28