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

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

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

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

PHP

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

Q&A

0回答

1055閲覧

TwitterBOTでのアップロード失敗原因

landy77

総合スコア1614

Twitter

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

PHP

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

0グッド

1クリップ

投稿2018/06/10 22:40

abraham/twitteroauth を使用してBOTを作成しました。
DBに予約として保存おいてCRONでタイミングが来れば発信するそれほど動作的には難しい物では無いつもりの物です。

文字だけの際は全く問題なく動作します。
(たまたまうまくいってるだけかもしれませんが)

問題は画像がある際に、画像をアップロードする部分

PHP

1$media = $connection->upload( "media/upload", [ 2 'media' => __DIR__ . '/tmp_image/' . $imgname 3 ] );

で落ちるときがあります。
imgnameには画像ファイル名が入っています。

失敗した際は送信済みフラグを立てないようにしているので、またCRONのタイミングが来ると処理するのですが今度は成功するような事があります。

で、何を知りたいかと言いますと、ログを順番に残していくとコード部分の次の行に「画像をアップロード」とログを残すようにしているのですがそれすら残っていない(アップロード部分で落ちてる?)ので、戻り値で原因を探りたかったのですがどうしたらいいのかと思いました。

ツイッターの2月?に改訂のあった、同じツイートを云々とかもアカウントは一つしかありません。
画像のファイルサイズかと思いましたが5MB以内ですし、成功することもあることからそこは問題ないと思います。

全く同じ内容・画像で成功したり失敗したりするので何が原因かを知りたいのですが戻り値を取れなくてどうしていいか・・・

何かこうすると良いとかそういうのがあればご指導いただけたと思います。

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

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

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

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

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

CHERRY

2018/06/10 23:32 編集

cron で起動しているということは、エラー発生した場合は、メールが届くと思うのですが、cron からのメールには、何か記載されていませんか? もし、cron からのメールを停止ししてる場合は、送信するようにして確認してください。 また、動作させている環境を具体的に記載してください。( OS やパージョン等、仮想環境やレンタルサーバー等の場合は、それも記載してください )
landy77

2018/06/11 00:10

さくらスタンダードなのですが、調べたところpostmasterに来るらしいのですが特にメールは届いてませんでした。
CHERRY

2018/06/11 00:16 編集

実行コマンドを cron に登録する際に 出力を /dev/null へ捨てていたりしないでしょうか? その場合は、出力がない(捨てている)ので、メールは来ないと思います。
landy77

2018/06/11 00:29

調べてみたのですが最後まで完了していても質問している失敗した際も何もメールが届いてないことに気がついたので今さくらにメールしてみました。
landy77

2018/06/20 04:22

さくらインターネットから返事が来ました。実行されたりしたことでメールを送信する事は無く、CRONで実行されたスクリプト内で出力がある場合にメール送信する仕様だそうです。ですのでログは出してますがソース側で画面出力は何も無いのでさくらの場合はメールは送信されて無くて正常だったと言うことになるかと思います。
CHERRY

2018/06/20 04:38 編集

エラーが出た場合はエラーメッセージが画面に出力されるので、エラーを出して異常終了しているのであれば、cron からメールが届いていると思ったのですが...   エラーが出ていない(cronから postmaster 宛にメールが来ていない)ということであれば、提示されている情報だけでは、原因の追究は難しいです。 まずは、プログラムの各所にログを記録するようにソースコードを追加して情報を収集する必要があるかと思います。
landy77

2018/06/20 04:39

同じ画像で成功したり失敗したりするので・・・最悪、期待はできませんがツイッター側に聞いてみます。ありがとうございました!
CHERRY

2018/06/20 05:42 編集

landy77

2018/06/26 22:41

CHERRY様 ありがとうございます。もう一度コントロールパネルからグラフなどを確認してみましたが、その際に特段リソースを食ってるとか、負荷が上がってると言うのはありませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問