HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0521
虎屋OAuthの認証とTwitterへの投稿9未解決


虎屋

リンク

2010/5/21(Fri) 17:09:37|NO.32729

OAuthの認証とTwitterへの投稿ってどのようにやればよいのでしょうか?
BASIC認証は再来月に廃止されるので調べたのですが、有用な情報が見つからなくて
質問させていただきました。



この記事に返信する


gm

リンク

2010/5/24(Mon) 16:30:13|NO.32749

すいません。初心者です。
どなたも回答されていないので、......

http://apiwiki.twitter.com/OAuth-Examples

検索したら他の言語はサンプルがあるみたいです。
これってHSPの苦手な分野になるんですか?
同じことをHSPではできないんですか?



テック

リンク

2010/5/24(Mon) 22:10:47|NO.32752

>OAuthの認証とTwitterへの投稿ってどのようにやればよいのでしょうか?
http://ascii.jp/elem/000/000/512/512629/
上記URLにてTwitter APIとGoogle App Engine(GAE)についての記述なのですが、
OAuthの認証とはなにか?について記載されていました。
簡単に記述するとTwitterのアカウントを取得し登録しておけば、
OAuthを利用したWebサービス内に直接Twitterの
パスワードを入力しなくてよくなるということでしょうか。
まずは、http://twinavi.jp/にてユーザー登録し、
ユーザーアカウントを取得してください。
話はそれからです。

また2010年6月でBasic認証が廃止されることが
正式にアナウンスされていますが、
Twitter側では現在「クライアントアプリ向け新APIでの認証」
を開発しているとのことですから、
そこらへんは安心してもいいでしょう。

Twitterへの投稿方法については、
http://twinavi.jp/
上記URLで動画や画像を投稿する方法がありました。
twitvideo(http://twitvideo.jp/)にて投稿するようです。
上記以外を投稿する場合については、調べてください。

>これってHSPの苦手な分野になるんですか?
>同じことをHSPではできないんですか?
gmさん、参考したURLを記載しているなら、
TwitterAPIがどういうものなのか調べたのでしょうか?
またTwitterに登録したのでしょうか?
私は調べて確認するためだけにTwitterに登録したんですが・・・。

調べてみたんですが、
TwitterAPIとは、
http://twitter.com/のURLに命令を付加して実行するみたいですね。
確認スクリプトを作成したのですが、
Twitterに登録しなくても確認できるのかな〜・・・。
もしできなければTwitterに登録してくださいm(__)m

↓参考サイト
(http://usy.jp/twitter/index.php?Twitter%20API#y369b038)
(http://www.hspcenter.com/hsptvm/archives/2009/11/hsp_2_twitterhs.html)

↓参考文献を元に作成した確認スクリプト

#include "mod_rss.as" g_strUrl = "http://twitter.com/statuses/user_timeline/tech_arai.rss" g_nResult = 0 sdim g_strRss sdim g_strLink // XMLパーサー(MSXML)を利用してRSSを読み込む rssload g_strRss, g_strLink, g_strUrl, 10 // 戻り値を退避しておく g_nResult = stat switch g_nResult // 処理が成功した場合 case 0 mes "RSSの読み込みに成功しました" // 読み込んだRSS分ループする foreach g_strRss mes " " + cnt + ":" + g_strRss(cnt) mes "(" + g_strLink(cnt) + ")" loop swbreak // 処理が失敗した場合 case 1 mes "RSSの読み込みに失敗しました" swbreak // 指定したURLまたはファイルパスがRSSでは無い場合 case 2 mes "指定のURLがRSSではありません" swbreak // 上記以外の場合 default: swbreak swend stop



gm

リンク

2010/5/24(Mon) 23:03:24|NO.32753

>gmさん、参考したURLを記載しているなら、
>TwitterAPIがどういうものなのか調べたのでしょうか?
>またTwitterに登録したのでしょうか?

HSPじゃなかったら読めるコードありますよ。><
登録してますがどこが楽しいのかわかりません。><



KA

リンク

2010/5/26(Wed) 15:39:31|NO.32761

>>gmさん、参考したURLを記載しているなら、
>>TwitterAPIがどういうものなのか調べたのでしょうか?
>>またTwitterに登録したのでしょうか?

>HSPじゃなかったら読めるコードありますよ。><
 →”APIを調べて、HSPに実装出来るか検討しましたか?”
  と言う意味だと思われます。

>登録してますがどこが楽しいのかわかりません。><
 →感想は人それぞれで、質問の内容には関係ないと思います。



gm

リンク

2010/5/26(Wed) 23:49:27|NO.32770

>HSPじゃなかったら読めるコードありますよ。><
>→”APIを調べて、HSPに実装出来るか検討しましたか?”
  と言う意味だと思われます。

初心者って書いてますから検討なんてしません。
他の言語で作るかソースを参考にします。

>登録してますがどこが楽しいのかわかりません。><
> →感想は人それぞれで、質問の内容には関係ないと思います。

Twitterに登録したのでしょうかって聞かれたから、
答えただけです。聞かれなかったら答えません。
もし私が大好きだったら自分で試しにつくるかもしれませんが
ほとんど使わないので参考にURLを記載しただけです。
答え方は人それぞれですから。すいません。



とら

リンク

2010/5/27(Thu) 01:19:58|NO.32773

アプリケーション層からのアクセスならxAuthのほうがアクセスが容易になるようだけど
仕様がいまいち掴みきれんのは私だけだろうか



mono

リンク

2010/5/27(Thu) 20:39:19|NO.32784

OAuthは利用者がconsumer(アプリケーション)を承認することで、
consumerに対してAPI呼び出しに必要なaccess tokenというものが発行され、
このtokenを利用してAPIのリクエストに署名を行うことで、
不正なAPI呼び出しを防ぐようになっています。
クライアントアプリケーション向けにxAuthというものも存在しますが、
OAuthがaccess token発行時にブラウザ上で認証を行うのに対して、
最初に1度だけID・パスワードを入力して認証を行うという違いがあるだけで、
APIを呼び出すときの手続きは変わりません。

HSPからOAuthによるTwitter APIの呼び出しが可能かどうかという話に戻りますが、
結論から言えば不可能ではないと思います。
しかし、そのためにはHMAC-SHA1による署名の生成が必要になるため、
さくっとサンプルコードが用意できるものではなさそうです。



テック

リンク

2010/5/29(Sat) 00:59:06|NO.32802

前回の補足という感じで追記を。

Twitter APIの日本語ドキュメントがあったのですが、
(http://watcher.moe-nifty.com/memo/docs/twitterAPI49.txt)

例えば、実際のAPI制限の実施状況を調べるならば
↓BASIC認証
http://twiter.com/rate_limit_status
↓0AUTH認証
http://api.twitter.com/1/rate_limit_status

とそれぞれ http://twiter.com/http://api.twitter.com/の後ろの部分
rate_limit_status、1/rate_limit_statusが
実行するAPI名のようです。

前回は、rssload命令を使用したサンプルを記載しましたが、
それ以外の方法はないのか探しましたらありました。
↓参考URL
http://hsp072.blog37.fc2.com/
http://hsp.tv/play/pforum.php?mode=pastwch&num=29334

hspinet関連の命令を使用するようです。
これが一番理解しやすいかも。

以下にサンプルスクリプトを記載しておきます。

#include "hspinet.as" // マクロ宣言 #define DIALOG_TITLE_CONFIRM "確認メッセージ" #define DIALOG_TITLE_WARNING "警告メッセージ" #define MESSAGE_HSP_END "HSPを終了してもよろしいですか?" #define MESSAGE_TWITTER_ERROR "Twiiterとの通信中にエラーが発生しました。\nHSPを終了します。" #define TWITTER_URL_BASIC "http://twiter.com/" #define TWITTER_URL_OAUTH "http://api.twitter.com/" // 定数宣言 #const global WAIT_TIME 50 // グローバル変数宣言 g_strUserName = "UserName" // ここは各自のユーザーIDにして下さい g_strPassWord = "Password" // ここは各自のパスワード にして下さい g_strEncodeBefor = g_strUserName + ":" + g_strPassWord g_strEncodeAfter = "" g_strHtmlHeader = "" // モジュールの宣言 #module TwitterModule // モジュール変数宣言 m_nNetResult = 0 m_strNetRespons = "" // HSP終了処理を行う // 引数 //  なし // 戻り値 //  なし #deffunc HspExit // ネット接続を終了する //(モジュール内で標準命令を実行する場合は、最後に@を付ける) netterm@ end return // Twitterへの命令を実行する // 引数 //  なし // 戻り値 //  なし #deffunc TwitterExec // 最小単位の処理を実行する netexec@ m_nNetResult // 処理が終了 または 継続中の場合 if (m_nNetResult >= 0) { // 処理が終了した場合 if (m_nNetResult >= 1) { // Twitterの成功時処理を実行する TwitterComplete // 処理が継続中の場合 } else { // 一定時間待機する await@ WAIT_TIME@ // 再起呼び出しを行う TwitterExec } // 処理がエラーの場合 } else { // Twitterのエラー時処理を実行する TwitterError } return // Twitterの成功時処理を実行する // 引数 //  なし // 戻り値 //  なし #deffunc TwitterComplete // HTTPリクエストの結果を取得する netgetv@ m_strNetRespons // HTTPリクエストの結果を表示する // mes@ m_strNetRespons // HTTPリクエストの結果を表示する mesbox@ m_strNetRespons, 640, 480, 0 return // Twitterのエラー時処理を実行する // 引数 //  なし // 戻り値 //  なし #deffunc TwitterError // 警告ダイアログを表示する dialog MESSAGE_TWITTER_ERROR, 1, DIALOG_TITLE_WARNING // 「OK」ボタンが押下された場合 if (stat = 1) { // HSP終了処理を行う HspExit // 「OK」ボタンが押下されなかった場合 } else { } return // TwitterModule #global // HSPエントリーポイント *HspMain // クローズボックス(ウィンドウ右上の終了ボタン)が // 押された場合の処理を指定する onexit gosub *CloseBox // ネット接続を初期化する netinit // URLを設定する // neturl TWITTER_URL_BASIC neturl TWITTER_URL_OAUTH // ユーザーIDとパスワードをBase64にエンコード(変換)する // b64encode g_strEncodeAfter, g_strEncodeBefor // BASIC認証の設定を行う // g_strHtmlHeader = "Authorization: Basic " + g_strEncodeAfter + "\n // ヘッダー文字列を設定する // netheader g_strHtmlHeader // HTTPリクエストを発行する // netrequest "" // HTTPリクエストを発行する(GET形式) // netrequest_get "rate_limit_status" netrequest_get "1/rate_limit_status" // HTTPリクエストを発行する(POST形式) // netrequest_post "" // Twitterへの命令を実行する TwitterExec stop // クローズボックス(ウィンドウ右上の終了ボタン)が // 押された場合の処理を行う *CloseBox // 確認ダイアログを表示する dialog MESSAGE_HSP_END, 2, DIALOG_TITLE_CONFIRM // 「はい」ボタンが押下された場合 if (stat = 6) { // HSP終了処理を行う HspExit // 「いいえ」ボタンが押下された場合 } else { } stop

>初心者って書いてますから検討なんてしません。
>他の言語で作るかソースを参考にします。
わざわざgmさんが参考アドレスを記載してくださったのに
きつい言い方になってしまって、すみません。
どの言語で作るかは、人それぞれなのでとやかく言いませんが、
HSP以外の言語には、Twitter APIを簡単に利用できるライブラリ群があります。
簡単だからと言って、楽な方にいきますと
初心者のうちは、それでもかまいませんが、
あるレベル以上になるとあまり成長しなくなります。
老婆心ですが、それだけは忠告しておきます。



miso

リンク

2010/5/30(Sun) 13:53:56|NO.32834

中途半端にHSPでTwitterクライアントを作って公開している者ですが、自分の技術力不足もありOAuthの実装はうまく行っていません。
さらに、XAuthというOAuthを簡略化した認証手段もあるのですが、こちらSSL必須となっているので全然簡略化になっていません。

6月でBASIC認証が使えなくなると言うことなので、現時点では無理矢理PHPを経由してなんとか凌ごうと思っています。
CあたりでOAuthの認証プロセスを代行(もしくは署名作成)するようなプラグインを作ってくれる人はいないんでしょうか・・・



ONION software Copyright 1997-2023(c) All rights reserved.