public static IEnumerator Get(string APIPath, Dictionary<string, string> APIParams, TwitterCallback callback) { string REQUEST_URL = "https://api.twitter.com/1.1/" + APIPath + ".json"; SortedDictionary<string, string> parameters = Helper.ConvertToSortedDictionary(APIParams); string requestURL = REQUEST_URL + "?" + Helper.GenerateRequestparams(parameters); UnityWebRequest request = UnityWebRequest.Get(requestURL); request.SetRequestHeader("ContentType", "application/x-www-form-urlencoded"); yield return SendRequest(request, parameters, "GET", REQUEST_URL, callback); }
public IEnumerator On(Dictionary <string, string> APIParams, TwitterStreamCallback callback) { SortedDictionary <string, string> parameters = Helper.ConvertToSortedDictionary(APIParams); WWWForm form = new WWWForm(); foreach (KeyValuePair <string, string> parameter in APIParams) { form.AddField(parameter.Key, parameter.Value); } request = UnityWebRequest.Post(REQUEST_URL, form); request.SetRequestHeader("ContentType", "application/x-www-form-urlencoded"); request.SetRequestHeader("Authorization", Oauth.GenerateHeaderWithAccessToken(parameters, "POST", REQUEST_URL)); request.downloadHandler = new StreamingDownloadHandler(callback); yield return(request.SendWebRequest()); }
public static IEnumerator Post(string APIPath, Dictionary<string, string> APIParams, TwitterCallback callback) { List<string> endpointForFormdata = new List<string> { "media/upload", "account/update_profile_image", "account/update_profile_banner", "account/update_profile_background_image" }; string REQUEST_URL = ""; if (APIPath.Contains("media/")) { REQUEST_URL = "https://upload.twitter.com/1.1/" + APIPath + ".json"; } else { REQUEST_URL = "https://api.twitter.com/1.1/" + APIPath + ".json"; } Debug.Log(REQUEST_URL); WWWForm form = new WWWForm(); SortedDictionary<string, string> parameters = new SortedDictionary<string, string>(); if (endpointForFormdata.IndexOf(APIPath) != -1) { // multipart/form-data foreach (KeyValuePair<string, string> parameter in APIParams) { if (parameter.Key.Contains("media")) { form.AddBinaryData("media", Convert.FromBase64String(parameter.Value), "", ""); } else if (parameter.Key == "image") { form.AddBinaryData("image", Convert.FromBase64String(parameter.Value), "", ""); } else if (parameter.Key == "banner") { form.AddBinaryData("banner", Convert.FromBase64String(parameter.Value), "", ""); } else { form.AddField(parameter.Key, parameter.Value); } } UnityWebRequest request = UnityWebRequest.Post(REQUEST_URL, form); yield return SendRequest(request, parameters, "POST", REQUEST_URL, callback); } else if (APIPath == "media/metadata/createa") { parameters = Helper.ConvertToSortedDictionary(APIParams); foreach (KeyValuePair<string, string> parameter in APIParams) { form.AddField(parameter.Key, parameter.Value); } UnityWebRequest request = UnityWebRequest.Post(REQUEST_URL, form); request.SetRequestHeader("ContentType", "text/plain; charset=UTF-8"); yield return SendRequest(request, parameters, "POST", REQUEST_URL, callback); } else { // application/x-www-form-urlencoded parameters = Helper.ConvertToSortedDictionary(APIParams); foreach (KeyValuePair<string, string> parameter in APIParams) { form.AddField(parameter.Key, parameter.Value); } UnityWebRequest request = UnityWebRequest.Post(REQUEST_URL, form); request.SetRequestHeader("ContentType", "application/x-www-form-urlencoded"); yield return SendRequest(request, parameters, "POST", REQUEST_URL, callback); } }