绿色按钮不再可访问
本文关键字:访问 不再 按钮 | 更新日期: 2023-09-27 17:56:45
Green Button是美国政府的一个能源项目。我正在尝试编写代码来获取他们的数据,并为此他们创建了一个沙盒。就在最近,我正在获取数据,一切都很顺利,直到两天前,突然间我不再从Greenbutton获得数据,完全出乎意料!在沙盒中,我使用了访问令牌框中的datacustodian_access_token:持有者 2a85f4bd-30db-4b7d-8f41-b046b0566cb3 。然后我启动了 GET/espi/1_1/resource/MeterReading。它曾经工作给我响应代码 200 和原子 XML。现在它给了我响应代码 403 禁止,我回来了:
<oauth>
<error_description>No Authorization Found</error_description>
<error>access_denied</error>
</oauth>
我有一些用于获取数据的 c# 代码,它也不再获取数据,而是出现错误。守则如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
namespace GreenButton
{
public partial class Test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string authToken = "2a85f4bd-30db-4b7d-8f41-b046b0566cb3"; //Currently the Access Token due to sandbox restrictions.
const string apiBaseUri = "https://services.greenbuttondata.org:443"; //Who we are Calling Web API
const string apiGetPeoplePath = "/DataCustodian/espi/1_1/resource/MeterReading"; //What we want from Them
var response = GetRequest(authToken, apiBaseUri, apiGetPeoplePath).Result;//Captures there reason
//responseString().results;
XMLLabel.Text = response;
}
static async Task<string> GetRequest(string token, string apiBaseUri, string requestPath)
{
using (var client = new HttpClient())
{
//setup client
client.BaseAddress = new Uri(apiBaseUri);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/atom+xml"));
client.DefaultRequestHeaders.Add("Authorization", "Bearer 2a85f4bd-30db-4b7d-8f41-b046b0566cb3");
//make request
HttpResponseMessage response = await client.GetAsync(requestPath).ConfigureAwait(false);
var Conn = response;
var responseString = await response.Content.ReadAsStringAsync();
var XML = responseString;
//Label l2 = new Label();
//l2.Text = XML;
return responseString;
}
}
//public void responseString(string XML)
//{
// Label l2 = new Label();
// l2.Text = XML;
//}
}
}
我也在不同网络上的另一台计算机上尝试了这个,但仍然遇到同样的问题。过去两天发生了什么变化?这是在绿色按钮端吗?我如何知道他们何时倒下,还是我?
是的,问题显然出在他们这边。他们没有状态或其他方式来确保它已关闭,我刚刚通过电子邮件发送了绿色按钮,他们做出了回应。上面的代码有效,所以如果你在同一条船上,请继续,祝你有美好的一天!