ツイート投稿画面へコメント付きで飛ばす

このQ&Aのポイント
  • PHP初心者が、一言掲示板のようなものを作成中です。チェックボックスにチェックして投稿することで、ツイッターへコメント内容を呟ける機能を実装したいと思っています。
  • 現在、oauth認証を行わずに直接ツイート投稿画面に飛ばす方法を試していますが、表示される内容が不完全になってしまいます。
  • 他の質問を探しながら試してみましたがうまくいきません。PHP初心者の私に、助言を頂けると助かります。
回答を見る
  • ベストアンサー

ツイート投稿画面へコメント付きで飛ばす

PHP初心者です。 一言掲示板のようなものを作成中なのですが、チェックボックスにチェックして投稿することで 同時にツイッターへコメント内容を呟けるという機能をつける作業に難航しております。 oauth認証作業はまだ敷居が高く、アプリ連携などもさせたくないので、ツイート投稿画面に直接飛ばすという方法をとっています。 if(isset($_POST["Tweet"])) { header("Location:http://twitter.com/home?status=掲示板に$commentと発言しました") ; } else { header("location: start.php"); } ↑現在書いているものです。 この方法ですと、ツイート投稿画面へは飛ぶものの、記入欄には「掲示板に」としか表示されず 変数以降が省略されます。 不慣れながらも色々他の質問を探しながら試してみたのですが なかなか上手くいきません。 よければ、ご助言頂ければ有り難いです…。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

変数がキチンと展開されていないだけでは? header("Location: Location:http://twitter.com/home?status=掲示板に{$comment}と発言しました"); としてみてください。 http://www.php.net/manual/ja/language.types.string.php#language.typ... というか、マルチバイト文字が混じるのですからurlencodeして header('Location: Location:http://twitter.com/home?status=' . urlencode('掲示板に' . $comment . 'と発言しました')); とした方がいいのでは? 以上、某所と同じ回答です(質問がコピペなので回答もコピペ)。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12131104002

rairimu
質問者

お礼

ご回答有り難う御座います。 変数を{}で囲った場合は「掲示板にと発言しました」と、変数が省略されてしまい、また、urlencodeでした場合には、ツイート投稿画面にいかずstart.php(ツイートするにチェックしなかった場合の移動先)に飛ばされてしまいます…。 マルチポストに関するご指摘ありがとうございます。 浅はかな考えで「別サイトであれば規約違反ではない」という認識でいたのですがマナーとしては決して褒められることではなかったですね…。 大変失礼致しました。 こちらでの回答受付を終了してあちら一本で継続して質問させていただきます。

関連するQ&A

  • OAuth認証でtwitterにアクセスできません

    PHPでOAuth認証でtwitterにつぶやきを投稿するプログラムを作ってます。 twitterの画面までは飛ぶのですが。 こちらです。 このページに対するリクエスト・トークンがありません。アプリケーションがTwitterアカウントを使用するかどうかを確認するために必要な特殊キーです。 送信したサイトまたはアプリケーションに戻って再度お試しください。何らかの手違いがあったかもしれません。 という文章が出てきて、アプリ認証画面に飛びません。 twitterのdeveloperのページでちゃんと登録して、キーなどはちゃんと入力しました。 今はローカルで試しています。 該当のプログラムはこんな感じです。 ~~~~~~ $twitter = new tmhOAuth( array("consumer_key"=>"****","consumer_secret"=>"****")); $here = tmhUtilities::php_self(); session_start(); if(isset($_REQUEST["command"]))switch($_REQUEST["command"]){ case "authorize"; //OAuth認可,まずリクエストトークンを取得 $twitter->request("POST",$twitter->url("oauth/request_token",""), array("oauth_callback" => $here."?command=callback")); //リクエストトークンはコールバックを受けてアクセストークンする際に必要なのでセッションに格納 $_SESSION["request_token"] = $twitter->extract_params($twitter->response["response"]); //twitterの認証画面へリダイレクト header("Location:".$twitter->url("oauth/authorize","")."?oauth_token={$_SESSION['request_token']['oauth_token']}"); break; ~~~~~~

    • 締切済み
    • PHP
  • TwitterKitで自動ツイートについて

    現在、XcodeでFabricを使用したswift2プログラミングをやってiphoneアプリ作成をやっています。 iphoneアプリのプログラミングでtwitter機能のアプリ作成でこのFabricというフレームワークというのを利用すると結構簡単なプログラミングで作成することができるということを下のWEBサイトで知りました。 http://qiita.com/mokumoku/items/bf0460f420acac3c04fc 確かに、このサイトの通りで大体twitterのログインやツイートもテンプレ的にでき便利だと思ったのですが、幾つか動作的にわからないことがあります。 例えば、ViewControllerを2つ配置して、画面遷移できるようにしているのですが、 ViewController1------>ViewController2に遷移する時にその時にツイート画面を出すような関数コードを呼び出すように作ってみたのですが、その時はツイートできないという状態になります。 ですが、同じ関数コードをコマンドボタンの押しの時に呼び出すとその時はツイート画面が出ます。 ViewController2のプログラミング内容は次のようになっています。 override func viewDidLoad() { ----(中略)---------- tweet() } このtweet()でツイート画面が出るようにしているのですが、画面遷移でこの関数は呼び出されているのですが、デバッグの結果 composer.showFromViewController(self) {}この内部のコードにアクセスできていない状態になっています。 また、 @IBAction func tweetTest(sender: AnyObject) { tweet() } tweetTestボタンでtweet()を呼び出した場合は composer.showFromViewController(self) {}の内部のコードにアクセスしてツイート画面が出るようにアクセスしていることがわかりました。 なぜこのように違いがあるのかご教示頂きますよう、宜しくお願い致します また、画面遷移時にツイート画面を出すようなこともできるのかも教えていただけると幸いです。 import Foundation import UIKit //import UIKit import TwitterKit import Fabric class ViewController2: UIViewController { override func viewDidLoad() { //super.viewDidLoad() // Swift /* let logInButton = TWTRLogInButton(logInCompletion: { session, error in if (session != nil) { print("signed in as") } else { print("error: ") } }) logInButton.center = self.view.center self.view.addSubview(logInButton) */ tweet() } /* @IBAction func tweetTest(sender: AnyObject) { tweet() } */ @IBAction func tweetTest(sender: AnyObject) { tweet() } func tweet(){ // Swift let composer = TWTRComposer() composer.setText("just setting up my Fabric") composer.setImage(UIImage(named: "fabric")) // Called from a UIViewController composer.showFromViewController(self) { result in if (result == TWTRComposerResult.Cancelled) { print("Tweet composition cancelled") } else { print("Sending tweet!") } } } }

  • Twitterのキャンペーンボタン(?)の投稿方法

    Twitterの企業公式アカウントなどが添付画像の形式のツイート(キャンペーンボタン(?) …名称が分かりません)を投稿しています。 「Tweet #あいうえお」のようなのボタンを押すと同一のツイートが投稿入力画面に表示されます。 企業公式アカウント以外の個人アカウントが任意のテキストと画像を入れてこの形式のツイートを作ることはできますか? 特定の有名企業の不祥事を名指しで皮肉る内容で、個人が作ったとしか思えないものが個人アカウントで投稿されているのを見かけたので、疑問に思いました。

  • Twitter codebirdでエラーがでます

    http://dotinstall.com/lessons/tw_connect_php_v2 上記のサイトを参考にツイッターでログインするサービスを作りたいのですが、 下記のようなエラーがでてしまいます。 Fatal error: Uncaught exception 'Exception' with message 'Error 77 while validating tificate.' in C:\xampp\htdocs\tw\codebird.php:923 Stack trace: #0 C:\xampp\htdocs\tw\codebird.php(294): Codebird\Codebird->_callApi('POST', 'oauth/request_t...', 'oauth/request_t...', Array, false, false) #1 C:\xampp\htdocs\tw\callback.php(15): Codebird\Codebird->__call('oauth_requestTo...', Array) #2 C:\xampp\htdocs\tw\callback.php(15): Codebird\Codebird->oauth_requestToken(Array) #3 {main} thrown in C:\xampp\htdocs\tw\codebird.php on line 923 認証にはcodebird.phpというライブラリを使っています。 https://github.com/mynetx/codebird-php <a href="callback.php">twitterでログイン</a> これをクリックすると、callback.phpに飛び認証が行われるという具合です。 callback.php内ではconfig.phpとcodebird.phpを読み込んでます。 以下callback.phpコード <?php require_once('config.php'); require_once('codebird.php'); session_start(); \Codebird\Codebird::setConsumerKey('CONSUMER_KEY', 'CONSUMER_SECRET'); $cb = \Codebird\Codebird::getInstance(); if (!isset($_SESSION['oauth_token'])) { // get the request token $reply = $cb->oauth_requestToken(array( 'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] )); // store the token $cb->setToken($reply->oauth_token, $reply->oauth_token_secret); $_SESSION['oauth_token'] = $reply->oauth_token; $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; $_SESSION['oauth_verify'] = true; // redirect to auth website $auth_url = $cb->oauth_authorize(); header('Location: ' . $auth_url); die(); } elseif (isset($_GET['oauth_verifier']) && isset($_SESSION['oauth_verify'])) { // verify the token $cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); unset($_SESSION['oauth_verify']); // get the access token $reply = $cb->oauth_accessToken(array( 'oauth_verifier' => $_GET['oauth_verifier'] )); // store the token (which is different from the request token!) //$_SESSION['oauth_token'] = $reply->oauth_token; //$_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; $cb->setToken($reply->oauth_token, $reply->oauth_token_secret); $me = $cb->account_verifyCredentials(); var_dump($me); exit; // send to same URL, without oauth GET parameters header('Location: ' . basename(__FILE__)); die(); } // assign access token on each page load $cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);

    • 締切済み
    • PHP
  • アメーバなうで番組にツイートできますか?

    ラッキーなど、ツイートするとそのTV画面の上に表示される番組とかありますが、それってアメーバなうでも「#○○」とつけて投稿することって出来るんでしょうか?それともツイッターでしかできなかったりしますか?分かりにくくてすみません。

  • Twitterへのツイート連動システム

    はじめまして PHPを利用し、Twitterとの連動を試みたいと考えております。 PHPで制作したオリジナルのフォームに送信すると、DBに反映する、ごく普通な仕様の一言掲示板なのですが、送信と同時にTwitterにツイートする仕組みを考えております。 その際、何かTwitter側とのデペロッパー的契約が必要なのでしょうか? 当方、Twitterにあまり詳しくなく・・。 そうした受渡し方法や契約方法などご教授いただけましたら幸いに思います。 そうぞよろしくお願いいたします。m(_ _)m

    • ベストアンサー
    • PHP
  • TwistOAuth ホストが解決できない

    Twistoauthを使って見たのですが、テストツイートがうまく行きません Error! Couldn't resolve host 'api.twitter.com' コード ↓ <?php //import require_once "TwistOAuth.phar"; //OAuth TwistOAuth //boot tweet try{ $tweet=$tfa->post("statuses/update",array("status"=>filter_input(INPUT_POST,"test"))); }catch(TwistException $te){ echo "Error! ".$te->getMessage(); } ?> なにが原因なのでしょうか

    • ベストアンサー
    • PHP
  • 環境をかえたら header(Location:)に不具合が?

    ローカル環境からWEBサーバに作ったPHPファイルを移動させたのですが、 header(Location:)がうまく動かなくなってしまいました。 アドレスがおかしいのかと思って いくつか試してみたんですが ファイルによってうまく行くのと行かないのがあるようです。 傾向としては $chkに5が入っていたら test.phpに移動する。 if($_SESSION['chk'] != '5'){  header('Location: ./test.php');  exit; } はうまく動くのですが ifでいくつか処理を行ったあとに if(isset($_POST('submit')){  いくつかの処理  header('Location: ./login.php'); } とするとうまく動かないという状態です。 どのようなケースが考えられるでしょうか アドバイスよろしくお願いします。

    • ベストアンサー
    • PHP
  • Twitter Oauth認証がエラーになります。

    現在Twitterログインアプリを作りいのですが、 下記のようなエラーが出てしまいます。 Fatal error: Class 'Codebird' not found in /var/www/html/callback.php on line 8 認証にはcodebird.phpというライブラリを使っております。 (https://github.com/mynetx/codebird-php 下記コードのソースもこちらです。) 分かる方がいらっしゃれば教えて原因を教えて頂けると非常に助かります。 宜しくお願い致します。。 以下仕様 <a href="callback.php">twitterでログイン</a> これをクリックすると、callback.phpに飛び認証が行われるという具合です。 callback.php内ではconfig.phpとcodebird.phpを読み込んでます。 以下callback.phpコード var_dump($me); が実行出来ず、先に記したエラーが起きます。 <?php require_once('config.php'); require_once('codebird.php'); session_start(); Codebird::setConsumerKey(CONSUMER_KEY, CONSUMER_SECRET); //上記の定数はconfig.phpに記載しており、スペルミスはありません。 $cb = Codebird::getInstance(); if (! isset($_GET['oauth_verifier'])) { // gets a request token $reply = $cb->oauth_requestToken(array( 'oauth_callback' => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] )); // stores it $cb->setToken($reply->oauth_token, $reply->oauth_token_secret); $_SESSION['oauth_token'] = $reply->oauth_token; $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; // gets the authorize screen URL $auth_url = $cb->oauth_authorize(); header('Location: ' . $auth_url); die(); } else { // gets the access token $cb->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); $reply = $cb->oauth_accessToken(array( 'oauth_verifier' => $_GET['oauth_verifier'] )); // $_SESSION['oauth_token'] = $reply->oauth_token; // $_SESSION['oauth_token_secret'] = $reply->oauth_token_secret; $cb->setToken($reply->oauth_token, $reply->oauth_token_secret); $me = $cb->account_verifyCredentials(); var_dump($me); exit; }

    • 締切済み
    • PHP
  • ホリエモンのツイートを古い順に読みたい

    はじめまして。 ツイッター初心者です。 ホリエモンのツイートを古い順に読みたいのですが、15,000ツイートもあるので、下スクロールで一番古いツイートにたどり着くまで時間がかかって仕方ありません。 ネットで調べた結果、twitというソフトを利用して、古いツイートから読めることがわかりました。 早速、twitダウンロードして、【設定】→【更新】→【新しいステータスを下にする】にチェックを入れましたが、twitの画面に表示されているツイートは新しい順のままです(チェックを入れてから、パソコンを再起動させてみましたが、変化無しでした)。 また、表示されているツイートも限られた数しかありません(少し下にスクロールさせると終わってしまう量です)。 twitで古いツイートから表示させる設定手順を詳しく教えて下さい。 また、twitにこだわっていないので、twit以外でも、ツイートを古い順に読む方法があれば教えて下さい。 よろしくお願い致します。