unityでtwitter APIを使用して情報を取得したいのですが、以下のコードを使用したところ、エラー401(認証情報が不足)が出てしまいます。
pythonを使用したコードでは何の問題もなく取得できるので、認証キーが間違っているという事はないと思います。どなたか、解決方法をご存じのかたがいらっしゃいましたら、教えていただきたいです。
C#
1using System; 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class get : MonoBehaviour 7{ 8 private string URL = "https://api.twitter.com/2/tweets/search/recent"; 9 10 private string bearer_token = "mytoken"; 11 12 // Start is called before the first frame update 13 void Start() 14 { 15 StartCoroutine(CallGetWebRequest()); 16 } 17 18 // Update is called once per frame 19 void Update() 20 { 21 22 } 23 private IEnumerator CallGetWebRequest() 24 { 25 //ウェブリクエストを生成 26 var request = UnityEngine.Networking.UnityWebRequest.Get(URL); 27 request.SetRequestHeader("Authorization", bearer_token); 28 //通信待ち 29 yield return request.SendWebRequest(); 30 //エラーが発生したか 31 if (request.result!= UnityEngine.Networking.UnityWebRequest.Result.Success) 32 { 33 //エラー内容 34 print(request.error); 35 } 36 else 37 { 38 print(request.downloadHandler.text); 39 40 41 42 43 } 44 } 45} 46
こちらが正常に動作するPythonコードです。
import requests import os import json #定数の設定 bearer_token = "mytoken" search_url = "https://api.twitter.com/2/tweets/search/recent" query_params = {'query': '薔薇由利本荘 has:images', 'expansions': 'attachments.media_keys', 'media.fields': 'url'} #認証用の関数 def bearer_oauth(r): r.headers["Authorization"] = f"Bearer {bearer_token}" r.headers["User-Agent"] = "v2RecentSearchPython" return r #検索エンドポイントに接続してJSONを取得する関数 def connect_to_endpoint(url, params): response = requests.get(url, auth=bearer_oauth, params=params) print(response.status_code) if response.status_code != 200: raise Exception(response.status_code, response.text) return response.json() #JSON取得の実行 json_response = connect_to_endpoint(search_url, query_params) print(json_response)
あなたの回答
tips
プレビュー