• 締切済み

OAuthでTwitterにツイートしたい

はじめまして。 よろしくお願いいたします。 ■やりたいこと。 ユーザがWebサイトへアクセスし、WebサイトからTwitterやFaceBookへつぶやける仕組みを構築したいと思っています。 ネットで調べたところ、OAuthを用いて行えそうだとわかりました。 しかし、いろいろ調べていますが情報が少なく、うまくできずに困っています。 参考にすべきサイトなどご存知でしたら教えていただけないでしょうか? ■試してみたこと。 サンプルらしきものをダウンロードし、試してもいます。 うまくできていませんが、やってみたことは以下の通りです。 (1)Twitterにアプリを登録し、consumer_keyとconsumer_secretを取得 (2)Twitterに(1)のkeyなどを用いてアクセス。 (3)上記(2)を行うと、ユーザに認証するかを確認する画面が表示され、承認すると、 7ケタのPINコードが表示される。 (4)このPINってどう使うんだろう・・・。 ⇒ネットで調べてもPINがよくわかりませんでした。また、これをユーザに入力してもらわないと認証できないのでしょうか? 自動でできる方法はありますでしょうか? いろいろ書いてしまい、すみません。 質問をまとめると、 ■質問事項 まとめ (1)WebサイトからTwitterやFaceBookへつぶやける仕組構築に、参考となるサイトを紹介してほしい。 (できればPHPのサンプルコードがあると嬉しいです・・・。) (2)PINコードの使用方法、および、ユーザに入力してもらわず自動で行える方法の有無。 です。 自分でも継続して調査を行っておりますが、 ご存知の方がいらっしゃいますが、ご協力を宜しくお願い致します。

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

みんなの回答

回答No.1

オープンソースでnet commonsというソフトがあります。 そのソフトを使った実例は http://researchmap.jp/joelimynu-45644/#_45644 自分でも導入して利用しようとしています。

参考URL:
http://www.netcommons.org/

関連するQ&A

  • TwitterのOauth認証プログラムについて

    TwitterのOauth認証プログラムについて 現在、Oauth認証を使って、一般ユーザが認証確認後、 WEBから投稿できるシステムを作ろうとしています。 Oauth_TokenとOauth_Token_Secretは、 $tok = $to->getRequestToken(); で取得されたものを変数として保持して取得しようとしているのですが、 この2つの認証コードと、固有の consumer_keyとconsumer_secretを使用して 認証させ、投稿プログラム $req = $to->OAuthRequest("https://twitter.com/statuses/update.xml","POST",array("status"=> $tweet . " " . $url . " #" . $hash)); を実行させると、なぜか <?xml version="1.0" encoding="UTF-8" ?> - <hash> <request>/statuses/update.xml</request> <error>Could not authenticate you.</error> </hash> つまり、認証されてない状態になってしまいます。 Oauth_TokenとOauth_Token_Secretを取得している場所が間違っているのでしょうか? もしかしてこの2つのコードが逆だったのかもしれないと思い、 逆にして投稿してみたのですが、それでも同じエラー画面に飛んでしまいます。 なぜだか分かる方、いらっしゃいますか?

    • ベストアンサー
    • PHP
  • 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
  • PHP+OAuthで認証エラー

    OAuth認証で、登録したAPIの認証「○○ががあなたのアカウントを利用することを許可しますか?」で ユーザ/PWを入力してログイン後、oauthライブラリを使用してOAuthオブジェクトを下記の様に作成したのですが。 $connection = new TwitterOAuth('CONSUMER_KEYの値', 'CONSUMER_SECRETの値'); $content = $connection->get('account/verify_credentials'); $connectionのhttp_codeリターンコードが'200'ではなくNULLになってしまい。 更に、$contentの内容に、"Could not authenticate you."という認証エラーが返ってきてしまいユーザ情報が取得できずにいます。 なぜ、認証エラーになってしまうのかが全く見当つかず。。 何か良い検証方法または、アドバイスありましたら教えてください。 参考サイトは http://www.sdn-project.net/labo/oauth.html http://blog.n-colo.net/archives/710 ちなみに、ライブラリのバージョンは0.2.0になります。

    • ベストアンサー
    • PHP
  • 言語はRubyを使っているのですが、現在OAuthを使ってTwitte

    言語はRubyを使っているのですが、現在OAuthを使ってTwitterアプリを作ろうと思っています。 そこでgemのoauth 0.3.6を入れ、色々なページを参考に作ろうと思っているのですが、request_tokenが旨く取得できません。 何故か認証エラーになってしまいます。 以下がコードになります。 ========================= require "oauth" oauth = OAuth::Consumer.new("Key", "SecretKey",{:site => "http://twitter.com"}) oauth.get_request_token(:oauth_callback=>"callback先url") ========================= 上記のコードをirbにて入力した際に出力されるエラー内容はこちらです。 OAuth::Unauthorized: 401 Unauthorized C:/Ruby/lib/ruby/gems/1.8/gems/oauth-0.3.6/lib/oauth/consumer.rb:200:in `token_request' C:/Ruby/lib/ruby/gems/1.8/gems/oauth-0.3.6/lib/oauth/consumer.rb:128:in `get_request_token' ちなみに開発環境は以下です。 Windows XP SP3 Ruby 1.8.6 Ruby on Rails 2.3.5 Mysql 5 もし上記、わかる方がいらっしゃいましたらご教授頂けないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Ruby
  • 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
  • twitterのOAuth認証+xml抽出(php

    こんにちは。 PHPのプログラムで分からない部分があるので質問させてください。 twitterAPIを用いてアカウントの情報のxmlを取得し、simplexmlで解析して ・フォロワー数 ・フォロー数 ・リストされている数 ・ツイート数 ・認証アカウントかどうか といったステータスをsimplexml_load_fileで読み込んで、抽出して変数に入れたいのですが・・・ (この変数に入れたステータスで色々と計算をする予定です) エラーが出てファイルを読み込んでくれません。 ユーザー情報を取得するAPIが認証を通さないといけないため、OAuthを用いて認証しています。 認証が必要のないAPIで返ってきたxmlは問題無くsimplexml_load_fileが使えます。 ちなみにさくらのレンタルサーバーのスタンダードで、PHPのバージョンは5.2.17です。 色々試してみたのですが、何が原因なのか分からないので、ご教授お願いします。 <コード> <?php // twitteroauth.phpを読み込む。 require_once("twitteroauth.php"); // Consumer keyの値 $consumer_key = "******"; // Consumer secretの値 $consumer_secret = "*****"; // Access Tokenの値 $access_token = "******"; // Access Token Secretの値 $access_token_secret = "******"; // OAuthオブジェクト生成 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); $req = $to->OAuthRequest("http://api.twitter.com/1/users/show/id.xml","GET",array("user_id"=>"******")); $xml = simplexml_load_file($req) or die("XMLパースエラー"); ?> <実行結果> Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "<?xml version="1.0" encoding="UTF-8"?> <user> <id>*******</id> <name>******</name> <screen_name>******</screen_name> <location>九州</location> <description>webクリエイ ・・・(以下略)・・・ ;。 &am in /home/*********/www/newfile.php on line 20 XMLパースエラー

    • 締切済み
    • PHP
  • ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて

    ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて ツイッターのAPIを利用してアプリケーションを開発しています。 OAUTH認証でアクセストークンの取得まではできたのですが、 アクセストークンを使ってAPIにアクセスしたところページが 存在しないとの旨を伝えられました。 ↓実際のソース https://twitter.com/1/statuses/update.xml?in_reply_to_status_id=自分のID(アクセストークンで取得したもの)&oauth_consumer_key=OAUTHコンシューマキー&oauth_nonce=ランダム文字列&oauth_signature_method=HMAC-SHA1&oauth_timestamp=タイムスタンプ&oauth_token=アクセストークン&oauth_version=1.0&status=つぶやきたい内容&oauth_signature=署名 上記URLにheader()(リダイレクト)でアクセスしています。simplexml_load_file()や file_get_contents();だと何も取得できませんでした。 特に不安なのがin_reply_to_status_idの指定先と実際のリクエストの仕方が良く わからない事です。何とかして呟きたいのでご教示よろしくお願いいたします。

  • ツイッターアカウントの確認だけしたい

    Oauth認証のサンプルプログラムをみると、どれも、入力されたアカウントに対していろいろ操作できる、このアプリに許可する・許可しないの画面が出るものばかりです。 ユーザーがツイッターのページをブラウザで開いていてログインしていれば、ツイッターのアカウント名だけ取得できるJavaプログラムのサンプルはないでしょうか?

  • javaでTwitterのOAuth認証を用いたつぶやきのポストを実現

    javaでTwitterのOAuth認証を用いたつぶやきのポストを実現したいと考えています。アクセストークンとアクセストークンシークレットは取得できたのですがそれを用いてつぶやきをポストすることができません。OAuthのライブラリを使えばポストすることは出来たのですができればライブラリを使わずに実現したいと思っています。おそらくポストのやりかたがおかしいと思うのですが何が悪いのかわかりません。javaはあまり得意ではないためお見せするのも恥ずかしいソースですがおかしなところを指摘していただけるとありがたいです。ポストの部分を載せます。 String url="http://twitter.com/statuses/update.xml"; URL urlObj=new URL(url); HttpURLConnecton urlCon=(HttpURLConnection)urlObj.openConnection();urlCon.setRequestMethod("POST"); urlCon.setDoOutput(true); urlCon.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); urlCon.setRequestProperty("Authorization",header); //変数headerには以下のような文字列が入っています //OAuth oauth_nonce="****", oauth_signature_method="HMAC-SHA1", oauth_timestamp="****", oauth_consumer_key="****", oauth_token="****", oauth_signature="****", oauth_version="1.0" String body="status=test"; PrintWriter pw=new PrintWriter(urlCon.getOutputStream()); pw.print(body); pw.flush(); pw.close(); //ここでエラー BufferedReader inStr=new BufferedReader(new InputStreamReader(urlCon.getInputStream()));

    • ベストアンサー
    • Java
  • PHP PEAR OAuthのdebug

    PEARを利用してOAuthを実装しようとしています。 いくつか成功したアプリケーションもあるのですがうまくいかないこともあり、 その場合のデバッグ方法に悩んでいます。 PEAR個別の相談になってしまうとは思うのですが、ライブラリ内のメソッドでエラーが出ていないか 原因特定のためのデバッグする方法はないでしょうか? 具体的にはHTTP_OAuth_Consumer_Response::sendRequestを使った次の行で echo("test")の出力が得られず、何らかの問題がsendRequest内で起こっているのだと思います。 できるだけライブラリ自体に手を加えずにやる方法はないでしょうか? このメソッドの参考URL http://pear.php.net/package/HTTP_OAuth/docs/latest/HTTP_OAuth/HTTP_OAuth_Consumer.html#methodsendRequest メソッドの内容 public function sendRequest($url, array $additional = array(), $method = 'POST') 239 { 240 $params = array( 241 'oauth_consumer_key' => $this->key, 242 'oauth_signature_method' => $this->getSignatureMethod() 243 ); 244 245 if ($this->getToken()) { 246 $params['oauth_token'] = $this->getToken(); 247 } 248 249 $params = array_merge($additional, $params); 250 251 $req = clone $this->getOAuthConsumerRequest(); 252 253 $req->setUrl($url); 254 $req->setMethod($method); 255 $req->setSecrets($this->getSecrets()); 256 $req->setParameters($params); 257 $this->lastResponse = $req->send(); 258 $this->lastRequest = $req; 259 260 return $this->lastResponse; 261 }

    • 締切済み
    • PHP