質問編集履歴

3

最終変更

2016/03/29 16:12

投稿

naoki855
naoki855

スコア75

test CHANGED
File without changes
test CHANGED
@@ -145,3 +145,63 @@
145
145
  この場合、クッキーかなにかでトークンが置き換わってしまったのでしょうか?
146
146
 
147
147
  (見当違いでしたら申し訳ありません。)
148
+
149
+
150
+
151
+ ★2016-03-30 01:09 追記
152
+
153
+ いただいたご意見、および他のサイトも参考に、以下のようにコードを修正しました。
154
+
155
+ ```php
156
+
157
+ <?php
158
+
159
+ require 'TwistOAuth.php';
160
+
161
+ require 'TwistException.php';
162
+
163
+
164
+
165
+ define('CONSUMER_KEY', 'CY');
166
+
167
+ define('CONSUMER_SECRET', 'CS');
168
+
169
+ define('ACCESS_TOKEN', 'AT');
170
+
171
+ define('ACCESS_TOKEN_SECRET', 'AS');
172
+
173
+
174
+
175
+ $header = 'Content-Type: text/plain; charset=utf-8';
176
+
177
+
178
+
179
+ try {
180
+
181
+ $connection = new TwistOAuth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET);
182
+
183
+ $res = $connection->post('statuses/update', [
184
+
185
+ 'status' => 'こんにちは'
186
+
187
+ ]);
188
+
189
+ header($header, true, 200);
190
+
191
+ echo "ツイートしました";
192
+
193
+ } catch (Exception $e) {
194
+
195
+ header($header, true, $e->getCode() ?: 500);
196
+
197
+ echo "ツイート失敗: {$e->getMessage()}\n";
198
+
199
+ }
200
+
201
+ ```
202
+
203
+
204
+
205
+ 申し訳ありません、ベストアンサーは迷いました。
206
+
207
+ ご納得いただけないかもしれませんが、何卒ご容赦ください。

2

修正

2016/03/29 16:12

投稿

naoki855
naoki855

スコア75

test CHANGED
File without changes
test CHANGED
@@ -81,3 +81,67 @@
81
81
 
82
82
 
83
83
  エラー文を見ましたが、pharが悪い?くらいしか分からないので、取り急ぎ各PHPをrequireしてみます。
84
+
85
+
86
+
87
+ ★2016-03-30 00:20 追記
88
+
89
+ いただいたご意見、および他のサイトも参考に、以下のようにコードを修正しました。
90
+
91
+ ```php
92
+
93
+ <?php
94
+
95
+ require 'TwistOAuth.php';
96
+
97
+ require 'TwistException.php';
98
+
99
+
100
+
101
+ define('CONSUMER_KEY', 'CY');
102
+
103
+ define('CONSUMER_SECRET', 'CS');
104
+
105
+ define('ACCESS_TOKEN', 'AT');
106
+
107
+ define('ACCESS_TOKEN_SECRET', 'AS');
108
+
109
+
110
+
111
+ $header = 'Content-Type: text/plain; charset=utf-8';
112
+
113
+
114
+
115
+ try {
116
+
117
+ $connection = new TwistOAuth('CONSUMER_KEY', 'CONSUMER_SECRET', 'ACCESS_TOKEN', 'ACCESS_TOKEN_SECRET');
118
+
119
+ $res = $connection->post('statuses/update', [
120
+
121
+ 'status' => 'こんにちは'
122
+
123
+ ]);
124
+
125
+ header($header, true, 200);
126
+
127
+ echo "ツイートしました";
128
+
129
+ } catch (Exception $e) {
130
+
131
+ header($header, true, $e->getCode() ?: 500);
132
+
133
+ echo "ツイート失敗: {$e->getMessage()}\n";
134
+
135
+ }
136
+
137
+ ```
138
+
139
+
140
+
141
+ 今度は`Invalid or expired token.`とエラーが出力されてしまいます。
142
+
143
+ デベロッパーサイトが発行したアクセストークンはいきているようです。
144
+
145
+ この場合、クッキーかなにかでトークンが置き換わってしまったのでしょうか?
146
+
147
+ (見当違いでしたら申し訳ありません。)

1

エラーログを追加

2016/03/29 15:28

投稿

naoki855
naoki855

スコア75

test CHANGED
File without changes
test CHANGED
@@ -53,3 +53,31 @@
53
53
  $to = new TwistOAuth('CONSUMER_KEY', 'CONSUMER_SECRET', 'ACCESS_TOKEN', 'ACCESS_TOKEN_SECRET');
54
54
 
55
55
  ```
56
+
57
+
58
+
59
+ ★2016-03-29 23:08 追記
60
+
61
+ MAMPの`php_error.log`を確認しました。
62
+
63
+
64
+
65
+ ```sh
66
+
67
+ [29-Mar-2016 23:07:09 Asia/Tokyo] PHP Fatal error: Uncaught exception 'TwistException' with message 'Invalid or expired token.' in phar:///Applications/MAMP/htdocs/twitter_bot/TwistOAuth.phar/TwistOAuth.php:831
68
+
69
+ Stack trace:
70
+
71
+ #0 phar:///Applications/MAMP/htdocs/twitter_bot/TwistOAuth.phar/TwistOAuth.php(352): TwistOAuth::decode(Resource id #5, '{"errors":[{"co...')
72
+
73
+ #1 /Applications/MAMP/htdocs/twitter_bot/bot.php(12): TwistOAuth->get('statuses/user_t...', 10)
74
+
75
+ #2 {main}
76
+
77
+ thrown in phar:///Applications/MAMP/htdocs/twitter_bot/TwistOAuth.phar/TwistOAuth.php on line 831
78
+
79
+ ```
80
+
81
+
82
+
83
+ エラー文を見ましたが、pharが悪い?くらいしか分からないので、取り急ぎ各PHPをrequireしてみます。