绿色按钮不再可访问

本文关键字:访问 不再 按钮 | 更新日期: 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;
        //}
    }
}

我也在不同网络上的另一台计算机上尝试了这个,但仍然遇到同样的问题。过去两天发生了什么变化?这是在绿色按钮端吗?我如何知道他们何时倒下,还是我?

绿色按钮不再可访问

是的,问题显然出在他们这边。他们没有状态或其他方式来确保它已关闭,我刚刚通过电子邮件发送了绿色按钮,他们做出了回应。上面的代码有效,所以如果你在同一条船上,请继续,祝你有美好的一天!