2011-07-14 10 views
2

oAuthを使用してTwitterに投稿しているときに403エラーを受け取っているという問題がありました。私に説明してみましょう: oAuthと403のエラーを使用したPHPの投稿

は、すべての認証を行い、この「実行されている」を有する:

$message = "Some text"; 
$oauth->post('statuses/update', array("status" => $message)); 

メッセージは、Twitter上で表示され、私は200応答を取得し、すべてが順調です。

しかし、私は試してみて、使用するとき:今

$message = $text; 
$oauth->post('statuses/update', array("status" => $message)); 

$textは、PHPでSimpleXMLElementを使用して、いくつかのXML、からフェッチされます。私は$text = $entry->summary;を使用して、私がつぶやきたい文字列を保存します。私はすでにテキストが<40文字であることを確認していますので、テキストの長さが正しいことがわかります。

ただし、コードを実行すると403エラーが発生します。私はそれはそれが問題を引き起こしていたが、私は私がツイートすることができたことを確認することができるそこにある#かもしれないと思った

object(SimpleXMLElement)#8 (2) { ["@attributes"]=> array(1) { ["type"]=> string(4) "html" } [0]=> string(104) "Attempting a PHP script to tweet something when it features the hashtag #tweeted and is under 140 chars." } 

:ここ

$text var_dumpから含まれてい $messageの内容の一例であり、問題のないハッシュを含む最初の例を使用します。

文字列をエンコードまたはデコードしてから、Twitterに送信する必要がありますか?よくわかりません。

+0

送信リクエストデータを調べると、期待どおりの状態になりますか? – shanethehat

+0

どのように私はそれを行うことができるかもしれないかについての任意のアイデア?投稿を確認するにはどうすればいいですか? – CLiown

+0

おそらく私は次のようなものが必要です:$ message = urlencode(utf8_encode($ text)); – CLiown

答えて

2

オブジェクト $ textを文字列として送信しようとしているという問題があります。

SimpleXmlElementオブジェクトをstringに変換するものはすべて動作するはずです。私は平易であっても簡単だと思うと$message = (string)$textはそのトリックをします。

0
$message = urldecode($text); 

問題を解決しました。

関連する問題