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では認証をどのようにすればいいでしょうか?
またおかしな所があればご指摘下さい。
よろしくお願いいたします。