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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0302
hiroネットワーク接続について17未解決


hiro

リンク

2011/3/2(Wed) 07:02:20|NO.37321

友人からの依頼でmixiやTwitter、アメブロなどのサイトへ文章を送信し
実際に反映させるシンプルなツールを作っています
ですがプログラミング自体もそこまで詳しいわけではなく
もちろんネットワーク接続をするツールを作った経験もないので
どんな命令を使用してネットワーク接続をしていくのかがわかりません…

ミクシィは個人でAPI?が使用できないなどという情報を見つけたので
通常通りログイン情報を送信してから書き込み情報を送信しようと考えています
これからhttp通信などの勉強もしようかと思っていますが
実際にHSPやC言語などのプログラミング言語では
こういった認証作業?を行わせる場合にどんなコードを使われているのでしょうか?



この記事に返信する


ひよこ

リンク

2011/3/2(Wed) 07:18:58|NO.37322

こんにちは。

http://hspnext.com/hspkura/hspkura11.htm#contents32
 googleへ検索させる。

http://hsp.tv/play/pforum.php?mode=pastwch&num=12711
http://hsp.tv/play/pforum.php?mode=pastwch&num=12798
 パンヤへログイン(どちらとも)

http://mixi.jp/はソースを見ると
 <form action="/login.pl?from=login0" method="post" name="login_form">
 <input tabindex="1" size="30" name="email" />
 <input tabindex="2" type="password" name="password" />
ですから、emailとpasswordに入力してやればよいわけです。



hiro

リンク

2011/3/2(Wed) 07:25:45|NO.37323

お早いお返事ありがとうございます!
最後のmixiのemailとpasswardの件に辿り着いてはいたのですが
例えば、HSP側でemailとpasswardを変数として捕らえた後に
それらの情報をEUP-JP?にエンコードして送信するという情報も見つけました
ですがその後に実際にどのようにしてmixiに送信作業を行っているか
また、送信をするという事は事前にネットワーク接続の準備をする必要があると思うのですが
その辺りが理解が追いついていない状態で…色々それらしい情報は出てきたのですが



hiro

リンク

2011/3/2(Wed) 07:30:38|NO.37325

どうでもいいですがpasswardとpasswordの綴りを完全に間違えてました
現状ではinputやmesboxなどにemailなどの情報を記入させて
その変数を送信時に使おうかと考えています
質問のレベルが低くてすいません…勉強不足で申し訳ないです



hiro

リンク

2011/3/2(Wed) 07:34:08|NO.37326

すみません、せっかく教えて頂いたのに目を通す前にレスしてしまいました
一度パンヤのURLを熟読してからもう一度出直してきます



hiro

リンク

2011/3/2(Wed) 08:02:25|NO.37328

googleのURLを含め一通り目を通してmixiのソースなども見てきました
これらはIEを利用してログイン作業を行わせているようですが
ツール内部で同じ作業を行うことはできないのでしょうか?
間接的にIEを操作して、ログイン作業をするのではなく
ツールの方から直接ログインさせてつぶやきなどの投稿を行えるようにしたいのです
パンヤのURL先にあるコードを利用して試行錯誤してみましたが
記事が古いのかmixiのソースと照らし合わせてもまだ理解できません…



ひよこ

リンク

2011/3/2(Wed) 17:45:33|NO.37335

すいません。
パンヤなんかという回り道しなくてもmixiやtwitterもあったようです。
mixi: http://hsp.tv/play/pforum.php?mode=pastwch&num=5914
twitter: http://hsp.tv/play/pforum.php?mode=pastwch&num=32729



ひよこ

リンク

2011/3/2(Wed) 18:24:06|NO.37336

なぜ、IEを利用したくないのですか?
表示されるのが嫌だから、ならばie("Visible")=0をお使いください。

いっときますが、これからかくサンプルも、
IEと互換性があるとかないとかなので、予めご了承ください。
#include "hspinet.as"
mixiurl ="http://mixi.jp/" mixifn ="login.pl?from=login0" nexturl ="/home.pl" email ="xxxxx@xxxxx.xx" password="0000" sticky =0 *main netinit if stat!0 : dialog ""+__LINE__ : end neturl mixiurl post ="next_url="+nexturl+"&" post +="email="+email+"&" post +="password="+password+"&" post +="sticky="+sticky netrequest_post mixifn, post ret="" *recieve netexec res if res=0 : wait 10 : goto *recieve if res<0 : dialog ""+__LINE__ : end netgetv buf ret += buf nkfcnv retsjis, ret, "Es" mesbox retsjis, 640, 400 netterm stop
僕はmixiアカウント持ってないんで、
動くのかどうか不確かですが、一応エラーページは出るみたいです。
動かなかったらまたレスください。答えられるかもしれません。



hiro

リンク

2011/3/2(Wed) 21:57:59|NO.37339

お返事ありがとうございます
実際に接続してみたところ
<html><head><meta http-equiv="refresh" content="0;url=/check.pl?n=%2Fhome.pl"></head></html>
このように表示されました
実際に開いてみたらクッキーが無効になっているのでログインできていないみたいです
IEに関しては友人の一存で日記やつぶやきを手軽に投稿というコンセプトなので
余計な機能を一切省いた物が欲しいそうなのです



inovia

リンク

2011/3/2(Wed) 22:20:38|NO.37340

ひよこさんが投稿されたスクリプトの後に、
home.plにアクセスする処理を入れたらログインできていましたよ。



hiro

リンク

2011/3/2(Wed) 22:39:00|NO.37341

お返事ありがとうございます
初歩的な質問でごめんなさい
アクセスする処理というのは
exec "http://mixi.jp/home.pl", 16
このような簡単な命令とは違うのでしょうか?
是非確認したかったのですがこれ以外に方法が見つからなくて…



inovia

リンク

2011/3/2(Wed) 23:08:48|NO.37342

ちょっと面倒くさかったのでモジュール化。

#include "hspinet.as" #module _hspinet_ #deffunc netsetpost str _url, str _fname, str _head, var _prm neturl@ _url netheader@ _head netrequest_post@ _fname,_prm return 0 #deffunc netsetget str _url, str _fname, str _head neturl@ _url netheader@ _head netrequest_get@ _fname return 0 #deffunc netgetres var buf res = 0 *main netexec@ res if res > 0 : goto *comp if res < 0 : goto *bad await 50 goto *main *bad ; エラー neterror@ buf return -1 *comp ; 完了 netgetv@ buf return 0 #global // 処理開始 nexturl ="/home.pl" email ="めるあど" password="ぱすわーど" sticky =0 netinit if stat!0 : dialog ""+__LINE__ : end // ログイン処理 post ="next_url="+nexturl+"&" post +="email="+email+"&" post +="password="+password+"&" post +="sticky="+sticky netsetpost "http://mixi.jp/", "/login.pl?from=login0", "", post netgetres buf // buf変数に結果取得 if stat = -1 : dialog "エラー発生" : end nkfcnv retsjis, buf, "Es" mesbox retsjis, 640, 400 // お試し表示 // トップページ表示 netsetget "http://mixi.jp/", "/home.pl", "" netgetres buf // buf変数に結果取得 if stat = -1 : dialog "エラー発生" : end nkfcnv retsjis, buf, "Es" screen 1 mesbox retsjis, 640, 400 // お試し表示



よつばのtakaya

リンク

2011/3/2(Wed) 23:33:52|NO.37343

現在、mixiのAPIは個人でも利用可能です。
しかし、クレジットカードでのデベロッパー登録が必要なようです。
http://developer.mixi.co.jp/about-platform/com/developer/card


それから、拙作の、mixiへのログインとボイスへの投稿のサンプルです
http://clovers428.blog137.fc2.com/blog-entry-5.html
mixiでのログイン状態を保持するには、クッキーを保持する必要があります。
hspinetではクッキーを扱えないようだったので、wininetを使用しています。


Twitterへの投稿については、拙作の「TsubuyakiSoup.as」をおすすめします
http://clovers428.web.fc2.com/soft.html#soft_2


もはや、宣伝ですね(^^;)
IE等のブラウザ内部の処理を実際に書こうとすると大変な量になります。
具体的にどんな通信を行っているか、実際に見たほうが勉強になると思います。
http://sonic64.com/2005-04-27.html
で紹介されているようなソフトを使ってみてください。



hiro

リンク

2011/3/3(Thu) 00:44:26|NO.37344

>>inovia様
わざわざ本当にありがとうございます
まだ全然わからない事だらけですが
是非参考にさせて頂きます
プログラミングは難しいですね…

>>よつばのtakaya様
貴重な情報ありがとうございます
これらを全て自作されているとは驚きました
是非とも今の僕に参考になるかわかりませんが
良い教材として使わせて頂きます

そもそもの考え方として
こういったコミュニティサイトのサポートツールのような物の場合
どういったアプローチの仕方が適しているんでしょうか?
記事を投稿する、といったようなネットワーク経由の処理は
初心者の手の出せる範疇ではないのかなと思ってしまったのですが…



inovia

リンク

2011/3/3(Thu) 01:11:49|NO.37345

すげー長いですが、一応投稿処理が可能です。
掲示板に投稿拒否されたので別の場所にアップしました。
http://homepage2.nifty.com/MJHS/hsp/mixisend.hsp



hiro

リンク

2011/3/3(Thu) 01:42:08|NO.37346

おお〜!これはすごい!
まさに僕のやりたいと思っていた感じです
処理も非常にわかりやすくてめちゃくちゃ参考になります
命令などまだまだわからない所もめちゃくちゃありますが
なんとなく意味はわかっても、どうしてこういう構成に到ったのかとか…
やっぱり教えて頂いたようにhttp通信の勉強をもっとしてみようと思います
もうそろそろスレッドを閉めます、これ以上は頭が追いつけそうにないので笑
最後にネットワークとは関係ないのですが
レイアウトなどでアドバイスを頂けると非常に嬉しいです!



hiro

リンク

2011/3/3(Thu) 01:42:31|NO.37347


#include "mod_menu.as" #define ctype LOWORD(%1) (%1 & $FFFF) #enum ID_NEW #enum ID_OPEN #enum ID_SAVE #enum ID_SAVEAS #enum ID_EXIT title "スーパーメモ帳くん ver.0.1" oncmd gosub *command, WM_COMMAND newmenu SubMenu.1, 1 addmenu SubMenu.1, "新規(&N)", ID_NEW addmenu SubMenu.1, "開く(&O)", ID_OPEN addmenu SubMenu.1, "上書き保存(&S)", ID_SAVE addmenu SubMenu.1, "名前を付けて保存(&A)...", ID_SAVEAS addmenu SubMenu.1, "", 0, $800 addmenu SubMenu.1, "終了(&X)", ID_EXIT newmenu Menu, 0 addmenu Menu, "ファイル(&F)", SubMenu.1, $10 applymenu Menu *top ; --------------基本設定 screen 0,600,460,0,,,,, cls 1 objmode 1 s_title="" s_text="" mixi_mail="" mixi_pass="" twitter_mail="" twitter_pass="" ameba_mail="" ameba_pass="" buf="" fname="" ; --------------左側のタイトル&本文入力ボックス pos 5,5 mesbox s_title,425,,3,24 pos 5,35 mesbox s_text,425,400,1,500 ; --------------右側の送信先選択エリア pos 435,5 objsize 160,20 button "mixi", *mixi pos 435,35 objsize 160,20 button "Twitter", *twitter pos 435,65 objsize 160,20 button "Ameba", *ameba pos 435,415 objsize 80,20 button "設定", *option *main stop ; --------------mixi投稿確認ウィンドウ ; はいが選択された場合はif命令で送信処理へ ; いいえが選択された場合はif命令で確認ウィンドウを閉じる *mixi dialog "この内容で送信しますか?",2,"確認" if stat=6{ } if stat=7{ gosub *main } stop ; --------------twitter投稿確認ウィンドウ ; はいが選択された場合はif命令で送信処理へ ; いいえが選択された場合はif命令で確認ウィンドウを閉じる ; twitterに限りs_text部分のみを送信する処理に(タイトル部分が無い為) *twitter dialog "この内容で送信しますか?",2,"確認" if stat=6{ } if stat=7{ gosub *main } stop ; --------------ameba投稿確認入力ウィンドウ ; はいが選択された場合はif命令で送信処理へ ; いいえが選択された場合はif命令で確認ウィンドウを閉じる *ameba dialog "この内容で送信しますか?",2,"確認" if stat=6{ } if stat=7{ gosub *main } stop ; --------------設定画面 ; 各サイトのログイン設定などを行う *option onkey gosub *o_onkey screen 1,350,400,8 color 0,0,255 line 0,100,350,100 line 0,200,350,200 line 0,300,350,300 color 0,0,0 font "MS P明朝",15,1 pos 10,10 mes"mixi" font "MS P明朝",10,0 pos 10,30 mes "メールアドレス" pos 10,45 input mixi_mail,150,15,50 pos 10,65 mes "パスワード" pos 10,80 input mixi_pass,150,15,50 hInput = objinfo(stat, 2) sendmsg hInput, $CC, '*' font "MS P明朝",15,1 pos 10,110 mes"Twitter" font "MS P明朝",10,0 pos 10,130 mes "メールアドレス" pos 10,145 input twitter_mail,150,15,50 pos 10,165 mes "パスワード" pos 10,180 input twitter_pass,150,15,50 hInput = objinfo(stat, 2) sendmsg hInput, $CC, '*' font "MS P明朝",15,1 pos 10,210 mes "Ameba" font "MS P明朝",10,0 pos 10,230 mes "メールアドレス" pos 10,245 input ameba_mail,150,15,50 pos 10,265 mes "パスワード" pos 10,280 input ameba_pass,150,15,50 hInput = objinfo(stat, 2) sendmsg hInput, $CC, '*' pos 280,370 button "キャンセル", *o_cancel pos 210,370 button "OK", *o_ok stop *o_onkey if wparam = 13{ objsel -1 if stat = 0^5 :gosub *o_ok } stop *o_cancel gsel 1,-1 gosub *main *o_ok gsel 1,-1 gosub *main *command wID = LOWORD(wparam) if wID == ID_NEW { buf="" objprm 0, buf fname = "" } if wID == ID_OPEN { dialog "txt", 16, "テキストファイル" if stat == 1 { fname = refstr bload fname, buf objprm 0, buf } } if wID == ID_SAVE { if fname == "" { dialog "txt", 17, "テキストファイル" if stat == 1 { fname = refstr } else { return } } bsave fname, buf } if wID == ID_SAVEAS { dialog "txt", 17, "テキストファイル" if stat == 1{ fname = refstr i = instr(fname, 0, ".txt") if (i == -1) { fname = fname + ".txt" } bsave fname,s_text } } if wID == ID_EXIT { end } return end



inovia

リンク

2011/3/3(Thu) 01:49:26|NO.37348

せっかくなんでモジュール化しました。
http://homepage2.nifty.com/MJHS/hsp/modmixisend.zip

解凍したファイルのSample.hspがサンプルで、
modmixisend.hsp がモジュールファイルです。



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