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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

3471閲覧

PHPでのTwitter API 認証が上手くいかない

sus

総合スコア9

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/08/11 14:49

前提・実現したいこと

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

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;

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

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

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

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

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

guest

回答1

0

ベストアンサー

可能性としては利用しているPHPのバージョンでしょうか。

オブジェクト定数

注意:
PHP 7.1.0 以降は、クラス定数のアクセス範囲を指定できるようになりました。

つまり、ご利用のAPIはPHP7.1以降で動作するものということですね。

投稿2020/08/11 20:48

m.ts10806

総合スコア80875

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

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

sus

2020/08/12 03:23

レンタルサーバーのPHPバージョンをアップデートしたら解決しました! ありがとうございます!
m.ts10806

2020/08/12 03:28

解決されたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問