/// <summary> /// Locapos へ位置情報を送信します。 /// </summary> /// <param name="latitude">送信する位置の緯度。</param> /// <param name="longitude">送信する位置の経度。</param> /// <param name="heading">送信する移動時の向き。真北を 0 とし、0 - 359 または -180 - 0 - 180 のどれかで指定ができ、また null を指定した場合は、相手には前の位置からの推測で表示されます。</param> /// <param name="privatePost">Locapos の公開地図に表示するかどうか。</param> /// <param name="groupId">任意グループに対して送信する場合はその ID を指定します。</param> /// <returns></returns> public async Task <BaseResponse> UpdateAsync(double latitude, double longitude, double?heading = null, bool privatePost = false, string groupId = "") { this.client.CheckToken(); var http = LocaposClientInternal.GetHttpClient(this.client.ClientToken); var contentsDict = new Dictionary <string, string> { { "latitude", latitude.ToString(CultureInfo.InvariantCulture) }, { "longitude", longitude.ToString(CultureInfo.InvariantCulture) } }; if (heading.HasValue) { contentsDict.Add("heading", heading.Value.ToString(CultureInfo.InvariantCulture)); } if (privatePost) { contentsDict.Add("private", "true"); } if (!string.IsNullOrWhiteSpace(groupId)) { contentsDict.Add("key", groupId); } var contents = new FormUrlEncodedContent(contentsDict); var request = await LocaposClientInternal.CreatePostRequestAsync(updateUri, contents, true); var response = await http.SendAsync(request); var result = new BaseResponse(); await result.SetResponseAsync(response); return(result); }
/// <summary> /// 自分自身を示す暗黙的なグループ ハッシュを取得します。 /// </summary> /// <returns></returns> public async Task <GroupHashResponse> Share() { this.client.CheckToken(); var http = LocaposClientInternal.GetHttpClient(this.client.ClientToken); var request = LocaposClientInternal.CreateGetRequest(shareUri); var response = await http.SendAsync(request); var result = new GroupHashResponse(); await result.SetResponseAsync(response); return(result); }
/// <summary> /// 現在アクティブなユーザーの情報を取得します。<paramref name="groupId"/> を使用して、該当するグループの絞り込みをおこないます。 /// </summary> /// <param name="groupId">指定した場合、該当するグループ ID でアクティブなユーザー一覧を取得します。</param> /// <returns></returns> public async Task <UsersShowResponse> Show(string groupId = "") { this.client.CheckToken(); var http = LocaposClientInternal.GetHttpClient(this.client.ClientToken); var request = LocaposClientInternal.CreateGetRequest(showUri + (!string.IsNullOrWhiteSpace(groupId) ? "?key=" + groupId : string.Empty)); var response = await http.SendAsync(request); var result = new UsersShowResponse(); await result.SetResponseAsync(response); return(result); }
public async Task <BaseResponse> Update(string screenName) { this.client.CheckToken(); var http = LocaposClientInternal.GetHttpClient(this.client.ClientToken); var contentDict = new Dictionary <string, string> { { "screen_name", screenName } }; var content = new FormUrlEncodedContent(contentDict); var request = await LocaposClientInternal.CreatePostRequestAsync(updateNameUri, content); var response = await http.SendAsync(request); var result = new BaseResponse(); await result.SetResponseAsync(response); return(result); }