前提・実現したいこと
初めて質問させて頂きます。
webサイトにtwitterやyoutubeのapiを使って特定のキーワードを含むツイートや動画を掲載できないかと試みております。
twitterの埋め込み10個を掲載し、その下にyoutubeの埋め込みを10個掲載したいと考えております。
日が浅いため拙いコードですが、
ご教授頂けましたら幸いです。
発生している問題・エラーメッセージ
htmlの中でphpを使おうとhogehoge.htmlからhogehoge.phpに変換、そのphpから2種類のpyファイルをを呼び出そうとしたところ、後者のexecで呼び出したいpyファイルとは別の前者で呼び出したpyファイルが呼び出される。 前者のtwitterはツイートが足りず、10個掲載するうち6個しか掲載できず、 Warning: Undefined array key 6 in C:\Users\<username>...\hogehoge.php on line 93 と表示されるが今回は問題ではない。 twitterの下に表示されるyoutubeだが、youtubeの埋め込みが表示されるはずが前者のexecで呼び出したツイートの埋め込みが再び掲載された。 足りてないツイートの部分だが、今度は本来掲載されるはずのyoutubeの埋め込みが正常に掲載されていた。
該当のソースコード
PHP
1<?php 2 $command="python twitter.py "; 3 exec($command,$output); 4 print "$output[0]\n";#ツイートが表示される 5 print "$output[1]\n";#ツイートが表示される 6 print "$output[2]\n";#ツイートが表示される 7 print "$output[3]\n";#ツイートが表示される 8 print "$output[4]\n";#ツイートが表示される 9 print "$output[5]\n";#ツイートが表示される 10 print "$output[6]\n";#Warning: Undefined array key 6 in C:\Users\<username>...\hogehoge.php on line 93 11 print "$output[7]\n";#Warning: Undefined array key 6 in C:\Users\<username>...\hogehoge.php on line 94 12 print "$output[8]\n";#Warning: Undefined array key 6 in C:\Users\<username>...\hogehoge.php on line 95 13 print "$output[9]\n";#Warning: Undefined array key 6 in C:\Users\<username>...\hogehoge.php on line 96 14 ?> 15 <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 16 <?php 17 $command="python youtube.py "; 18 exec($command,$output); 19 print "$output[0]\n";#ツイートが表示される 20 print "$output[1]\n";#ツイートが表示される 21 print "$output[2]\n";#ツイートが表示される 22 print "$output[3]\n";#ツイートが表示される 23 print "$output[4]\n";#ツイートが表示される 24 print "$output[5]\n";#ツイートが表示される 25 print "$output[6]\n";#youtubeが表示される 26 print "$output[7]\n";#youtubeが表示される 27 print "$output[8]\n";#youtubeが表示される 28 print "$output[9]\n";#youtubeが表示される 29 ?>
twitter.py
Python
1import tweepy 2 3api_key = "hoge" 4 5api_secret_key = "hogehoge" 6 7access_token = "hogehogehoge" 8 9access_token_secret = "hogehogehogehoge" 10 11auth = tweepy.OAuthHandler(api_key, api_secret_key) 12 13auth.set_access_token(access_token, access_token_secret) 14 15api = tweepy.API(auth, wait_on_rate_limit=True) 16 17for tweet in tweepy.Cursor(api.search, q='#hogehoge' + '-filter:retweets').items(10): 18 19 print(f'https://twitter.com/user/status/{tweet.id}')
youtube.py
Python
1import re 2from apiclient.discovery import build 3 4API_KEY = 'hogehogehogehogehoge' 5 6youtube = build("youtube", "v3", developerKey = API_KEY) 7 8youtube_query = youtube.search().list( 9part="id", 10q="hogehogehogehogehogehoge", 11order="viewCount", 12type="video", 13maxResults=10 14).execute() 15 16s = youtube_query 17 18a = '<iframe width="560" height="315" src="https://www.youtube.com/embed/' 19b = '" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>' 20 21print(a+str(str(s)[-16:-1])[0:11]+b) 22print(a+str(str(s)[-132*1+-16:-1])[0:11]+b) 23print(a+str(str(s)[-132*2+-16:-1])[0:11]+b) 24print(a+str(str(s)[-132*3+-16:-1])[0:11]+b) 25print(a+str(str(s)[-132*4+-16:-1])[0:11]+b) 26print(a+str(str(s)[-132*5+-16:-1])[0:11]+b) 27print(a+str(str(s)[-132*6+-16:-1])[0:11]+b) 28print(a+str(str(s)[-132*7+-16:-1])[0:11]+b) 29print(a+str(str(s)[-132*8+-16:-1])[0:11]+b) 30print(a+str(str(s)[-132*9+-16:-1])[0:11]+b)
試したこと
各pyファイルのコマンドラインでの確認
補足情報(FW/ツールのバージョンなど)
twitter.pyとyoutube.py、hogehoge.phpは同ディレクトリ下にあります。
phpで開放したローカルサーバーでサイトの確認をしています。
回答2件
あなたの回答
tips
プレビュー