/// <summary> /// 残高取得API /// ユーザーの残高に関する情報を取得することができます。 /// </summary> /// <param name="user">ユーザー認証オブジェクト。</param> /// <param name="detail">個別の勘定を取得するかどうか。0を指定した場合取得しません。1を指定した場合、個別の勘定を取得します。</param> /// <returns></returns> public AccountBalanceResponse GetAccountBalance(AskMonaUser user, int detail = 0) { return(PostAuth <AccountBalanceResponse>("http://askmona.org/v1/account/balance", user, new Dictionary <string, string> { { "detail", detail.ToString() } })); }
/// <summary> /// レス投稿API /// トピックに投稿することができます。 /// </summary> /// <param name="user">ユーザー認証オブジェクト。</param> /// <param name="t_id">投稿するトピックの、トピックID。</param> /// <param name="text">レス本文。文字数は1024字以内、改行は15行以内という制約があります。</param> /// <returns></returns> public AskMonaResponse PostResponse(AskMonaUser user, int t_id, string text) { return(PostAuth <AskMonaResponse>("http://askmona.org/v1/responses/post", user, new Dictionary <string, string> { { "t_id", t_id.ToString() }, { "text", text } })); }
/// <summary> /// MONA送金API /// 特定のユーザーにMONAを送金することができます。 /// </summary> /// <param name="user">ユーザー認証オブジェクト。</param> /// <param name="to_u_id">送金したい相手のユーザーID。</param> /// <param name="amount">送金したいMONAの額。watanabe単位で指定してください(1MONAは100,000,000watanabeで、amountは整数値をとります)。たとえば、12MONAを送りたい場合は、amount='1200000000'となります。また、仕様により、一度に100万MONA以上の額は送れません。</param> /// <param name="anonymous">匿名で送金するかどうか。0を指定した場合、ユーザーIDとユーザー名を送金相手に知らせることができます。1を指定した場合、匿名で送金します。</param> /// <returns></returns> public SendAccountResponse SendAccountAccountToUser(AskMonaUser user, int to_u_id, decimal amount, int anonymous = 1) { return(PostAuth <SendAccountResponse>(@"http://askmona.org/v1/account/send", user, new Dictionary <string, string> { { "to_u_id", to_u_id.ToString() }, { "amount", amount.ToString("整数") }, { "anonymous", anonymous.ToString() } })); }
/// <summary> /// お気に入り取得API /// お気に入りに登録したトピックの一覧を取得すことができます。 /// </summary> /// <param name="user"></param> /// <param name="order">並べ替える条件。'added'はお気に入りに追加された時刻順、'updated'はトピックが更新された順で並べ替えられます。</param> /// <param name="limit">取得するお気に入りの個数。最大値は200です。</param> /// <param name="offset">取得するお気に入りのオフセット(取得開始位置)。最大値は200です。</param> /// <returns></returns> public TopicListResponse GetFavoriteTopicList(AskMonaUser user, FavoriteTopicOrder order = FavoriteTopicOrder.added, int limit = 200, int offset = 0) { return(PostAuth <TopicListResponse>(@"http://askmona.org/v1/favorites/list", user, new Dictionary <string, string> { { "order", order.ToString() }, { "limit", limit.ToString() }, { "offset", offset.ToString() } })); }
/// <summary> /// シークレットキー取得API /// 自動的にアプリケーション連携を行い、認証キーの作成に使うシークレットキーを取得することができます。 /// </summary> /// <param name="u_address">利用者のMonacoinアドレス。</param> /// <param name="pass">利用者のパスワード。</param> /// <returns></returns> public SigninResponse Signin(string u_address, string pass) { var slr = SigninLow(u_address, pass); var ret = new SigninResponse(); ret.status = slr.status; ret.error = slr.error; ret.user = AskMonaUser.Create(slr.u_id, slr.secretkey); return(ret); }
/// <summary> /// Ask Mona登録API /// 新しくAsk Monaにアカウントを作成することができます。また、自動的にアプリケーション連携を行い、認証キーの作成に使うシークレットキーを取得することができます。 /// </summary> /// <param name="u_address">利用者が登録に使うMonacoinアドレス。</param> /// <param name="u_name">利用者の名前。最大で12文字です。指定しない場合は「名無し」となります。</param> /// <param name="pass">利用者が登録に使うパスワード。6字以上で指定してください。</param> /// <param name="agree">Ask Mona利用規約に同意するかどうか。同意する場合、1を指定して下さい。同意しない場合は登録できません。</param> /// <returns></returns> public SignupResponse Signup(string u_address, string u_name, string pass, int agree = 0) { var slr = SignupLow(u_address, u_name, pass, agree); var ret = new SignupResponse(); ret.status = slr.status; ret.error = slr.error; ret.user = AskMonaUser.Create(slr.u_id, slr.secretkey); return(ret); }
internal async Task <T> PostAuthAsync <T>(string url, AskMonaUser user, Dictionary <string, string> data) { var ak = user.GenerateAuthKey(app_secretkey); data.Add("app_id", app_id.ToString()); data.Add("u_id", user.u_id.ToString()); data.Add("nonce", ak.nonce); data.Add("time", ak.time); data.Add("auth_key", ak.auth_key); return(await PostAsync <T>(url, data)); }
/// <summary> /// シークレットキー検証API /// 認証キーの作成に使うシークレットキーが有効か判断できます。有効かどうかは、すべての要認証APIのエラー情報から確かめられますので、通常は他のAPIを使用して検証してください。なお、有効でない場合は、要認証API利用チャートの手順2からやり直してください。 /// </summary> /// <param name="user">ユーザー認証オブジェクト。</param> /// <returns></returns> public AskMonaResponse GetVerifyUser(AskMonaUser user) { return PostAuth<AskMonaResponse>("http://askmona.org/v1/auth/verify", user, new Dictionary<string, string>()); }
/// <summary> /// 残高取得API /// ユーザーの残高に関する情報を取得することができます。 /// </summary> /// <param name="user">ユーザー認証オブジェクト。</param> /// <param name="detail">個別の勘定を取得するかどうか。0を指定した場合取得しません。1を指定した場合、個別の勘定を取得します。</param> /// <returns></returns> public AccountBalanceResponse GetAccountBalance(AskMonaUser user, int detail = 0) { return PostAuth<AccountBalanceResponse>("http://askmona.org/v1/account/balance", user, new Dictionary<string, string> { {"detail",detail.ToString()} }); }
/// <summary> /// MONA送金API /// 特定のユーザーにMONAを送金することができます。 /// </summary> /// <param name="user">ユーザー認証オブジェクト。</param> /// <param name="to_u_id">送金したい相手のユーザーID。</param> /// <param name="amount">送金したいMONAの額。watanabe単位で指定してください(1MONAは100,000,000watanabeで、amountは整数値をとります)。たとえば、12MONAを送りたい場合は、amount='1200000000'となります。また、仕様により、一度に100万MONA以上の額は送れません。</param> /// <param name="anonymous">匿名で送金するかどうか。0を指定した場合、ユーザーIDとユーザー名を送金相手に知らせることができます。1を指定した場合、匿名で送金します。</param> /// <returns></returns> public SendAccountResponse SendAccountAccountToUser(AskMonaUser user, int to_u_id, decimal amount, int anonymous = 1) { return PostAuth<SendAccountResponse>(@"http://askmona.org/v1/account/send", user, new Dictionary<string, string> { {"to_u_id",to_u_id.ToString()}, {"amount",amount.ToString("整数")}, {"anonymous",anonymous.ToString()} }); }
/// <summary> /// お気に入り取得API /// お気に入りに登録したトピックの一覧を取得すことができます。 /// </summary> /// <param name="user"></param> /// <param name="order">並べ替える条件。'added'はお気に入りに追加された時刻順、'updated'はトピックが更新された順で並べ替えられます。</param> /// <param name="limit">取得するお気に入りの個数。最大値は200です。</param> /// <param name="offset">取得するお気に入りのオフセット(取得開始位置)。最大値は200です。</param> /// <returns></returns> public TopicListResponse GetFavoriteTopicList(AskMonaUser user, FavoriteTopicOrder order = FavoriteTopicOrder.added, int limit = 200, int offset = 0) { return PostAuth<TopicListResponse>(@"http://askmona.org/v1/favorites/list", user, new Dictionary<string, string> { {"order",order.ToString()}, {"limit", limit.ToString()}, {"offset" , offset.ToString()} }); }
/// <summary> /// レス投稿API /// トピックに投稿することができます。 /// </summary> /// <param name="user">ユーザー認証オブジェクト。</param> /// <param name="t_id">投稿するトピックの、トピックID。</param> /// <param name="text">レス本文。文字数は1024字以内、改行は15行以内という制約があります。</param> /// <returns></returns> public AskMonaResponse PostResponse(AskMonaUser user, int t_id, string text) { return PostAuth<AskMonaResponse>("http://askmona.org/v1/responses/post", user, new Dictionary<string, string> { {"t_id",t_id.ToString()}, {"text",text} }); }
/// <summary> /// シークレットキー検証API /// 認証キーの作成に使うシークレットキーが有効か判断できます。有効かどうかは、すべての要認証APIのエラー情報から確かめられますので、通常は他のAPIを使用して検証してください。なお、有効でない場合は、要認証API利用チャートの手順2からやり直してください。 /// </summary> /// <param name="user">ユーザー認証オブジェクト。</param> /// <returns></returns> public AskMonaResponse GetVerifyUser(AskMonaUser user) { return(PostAuth <AskMonaResponse>("http://askmona.org/v1/auth/verify", user, new Dictionary <string, string>())); }