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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1118
DoubleQuoteMIXI VOICE APIをHSPで使いたい4未解決


DoubleQuote

リンク

2010/11/18(Thu) 19:12:43|NO.35892

mixi voiceにVoice APIというものがあるようです。
詳細については
http://developer.mixi.co.jp/connect/mixi_graph_api/mixi_io_spec_top/voice-api
こちらに書いてある通りなのですが、これをHSPで使う方法を調べています。
C#では
http://d.hatena.ne.jp/InoHiro/20090920/1253467229
このようにすることにより可能なようですが、HSPではどのようにすれば出来るでしょうか?
ご存じの方、ご教授願います。
よろしくお願いいたします。



この記事に返信する


skyblue

リンク

2010/11/20(Sat) 11:29:56|NO.35930

hspinet.dllを使って、

http://api.mixi-platform.com/2/voice/statuses/[User-ID]/などに接続して

user_timeline?since_id=[つぶやきのID]にgetコマンドを送る的な感じです。



DoubleQuote

リンク

2010/11/22(Mon) 14:50:11|NO.35963

skyblue様

レスありがとうございます。
getコマンドを使うとの件、理解出来ました。
netrequest_postを使うとできるような気がしてきました。
twitterへのテスト投稿プログラムを改造し以下のように作ってみました。
とりあえずつぶやきを書きこむプログラムを作っています。

#include "hspinet.as" ; ; mixi voiceに発言を投稿 ; title "MixiVoiceに発言を投稿" sdim res,4096 sdim orgmsg,4096 ; もとのメッセージ(SJIS) sdim utf8msg,4096 ; UTF8に変換したメッセージ sdim encmsg,4096 ; URLエンコードされたメッセージ user = "aaaaaaaaaa@aaa.aaa"//ご自身のユーザーIDを書きこんで下さい pass = "password"//ご自身のパスワードを入力して下さい orgmsg = "日本語メッセージの投稿テスト from HSP3" /* objsize 120,24 pos 0,0:mes "TwitterID":pos 220,0:mes "PASS" pos 80,0:input user pos 262,0:input pass:id_pass=stat // sendmsg objinfo(id_pass,2),$CC,'*' pos 0,28 mesbox orgmsg,640,100,1 button "送信",*go stop */ *go cls netinit if stat : dialog "ネット接続できません。" : end ; URLを指定 neturl "http://api.mixi-platform.com/2/voice/" ; POST形式でCGIにパラメーターを渡す srcstr = user+":"+pass b64encode res, srcstr ; base64エンコード netheader "Authorization: Basic "+res+"\n" ; BASIC認証の設定 nkfcnv utf8msg,orgmsg,"Sw" ; utf-8に変換する urlencode encmsg,utf8msg ; URLエンコードする prm = "status="+encmsg dialog prm //netrequest_post "update.json", prm ; CGI送信(POST) netrequest_post "statuses", prm ; CGI送信(POST) mes "投稿を送信しました。" *main ; 結果待ちのためのループ repeat netexec res //dialog res if ( res != "" ) : break await 50 loop if ( int(res) > 0 ) { mes "完了。" netgetv buf jsonopen jroot,buf jsongets erstr, "error" if stat=0 : dialog "サーバーがエラーを返しました\n"+erstr jsonclose } if ( int(res) <= 0 ) { ; エラー neterror estr mes "ERROR "+estr } stop
これだと認証に失敗してしまうようです。
mixiでは認証をどのようにすればいいでしょうか?
またおかしな所があればご指摘下さい。
よろしくお願いいたします。



DoubleQuote

リンク

2010/11/22(Mon) 18:17:17|NO.35967

認証において

Consumer key (サービス登録後に発行されたもの) Consumer secret (サービス登録後に発行されたもの)
この二つが必要のようですが法人しか取得できないのですかね?



Takaya

リンク

2010/11/25(Thu) 21:08:20|NO.36030

>認証において
>Consumer key (サービス登録後に発行されたもの)
>Consumer secret (サービス登録後に発行されたもの)
>この二つが必要のようですが法人しか取得できないのですかね?

http://developer.mixi.co.jp/connect/mixi_graph_api/servicesによると

※現在、mixi Graph APIはパートナーアカウント(法人)のみの利用となっております。
とのことなので、個人では無理なようですね。


DoubleQuoteさんが提示したC#のサンプルや他のmixiボイス操作系のスクリプトは、
直接mixiにアクセスして、CGIに値を渡すことによって実現しています。


ログインの仕方は、mixiのログイン画面(未ログイン状態のhttp://mixi.jp/)のソースより、
login.plへ
next_url=/home.pl&email=メールアドレス&password=パスワード
というデータをPOSTしているようです。
(各値はEUC-JPにエンコードする必要があります。)


ボイスの投稿は、mixiのボイス画面(http://mixi.jp/recent_voice.pl)のソースより、
add_voice.plへ
body=発言内容&post_key=ポストキー&redirect=recent_voice.pl
というデータをPOSTしているようです。
ポストキーはhttp://mixi.jp/recent_voice.plのソースに記述されているので、ソースをパースして取得する必要があります。
(各値はEUC-JPにエンコードする必要があります。)

mixiでは認証確認にCookieを使用しているので、ログインした際にCookieを保持しておき、add_voice.plにアクセスする際にはCookieをそえます。


以上が手順の簡単な説明です。

この方法には、HTTPのしくみやHTMLの知識が必要です。
また、hspinetだけではCookieが扱えないと思うので、直接wininetなどのAPIを呼び出すことになると思います。



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