.net-core - 如何访问 Airbnb API?或 Airbnb 正确的令牌?
问题描述
有一些旧的、非官方的 Airbnb API,Airbnb 不会向新合作伙伴提供访问权限。
如果我获得 Airbnb 令牌来批准 Airlock,我仍然无法访问预订。
也许有人有替代解决方案?
public string GetAirbnbAPIToken(string email, string password)
{
HttpClient client = new HttpClient();
var uri = new Uri("https://www.airbnb.com/api/v2/logins");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("x-airbnb-api-key", "your api key");
client.DefaultRequestHeaders.Add("x-airbnb-device-id", "111111111111111");
client.DefaultRequestHeaders.Add("user-agent", "Airbnb/19.18 AppVersion/19.18 iPhone/12.2 Type/Phone");
var credentials = new
{
email = email,
password = password,
type = "email"
};
var response = client.PostAsync(uri, new StringContent(JsonConvert.SerializeObject(credentials), Encoding.UTF8, "application/json")).Result.Content;
string responce = response.ReadAsStringAsync().Result;
Debug.WriteLine("Airbnb responce: " + responce);
//Open Airlock
try
{
//https://www.airbnb.com/airlock?al_id=AIRLOCK_ID
dynamic json = JsonConvert.DeserializeObject(responce);
string airlock = Convert.ToString(json.client_error_info.airlock.airlockId);
return "https://www.airbnb.com/airlock?al_id=" + airlock;
}
catch
{
}
//Parse reservations
try
{
dynamic json = JsonConvert.DeserializeObject(responce);
string token = Convert.ToString(json.login.id);
return Reservations(token).ToString();
}
catch
{
return "Airbnb token error: " + responce;
}
}
解决方案
推荐阅读
- javascript - 如何从文本框中删除“选择文件”按钮?
- c# - 在foreach循环中调用多个存储过程时如何实现类似于事务的逻辑
- c# - 如何在另一个进程使用 Serilog 日志文件时查看它?
- sql - 从多列中查找最大值、第二个最大值和最小值
- javascript - 为什么使用 TypeScript 编译时从另一个节点模块导出为默认值会导致未定义的对象
- sql - 如何在分区上添加过滤器
- c - 我的用于查找二次方程根的代码有什么问题?
- python - 如何激活从表单收集的数据发送提醒电子邮件的功能?
- r - ggplot - 为主题添加自定义字体
- c# - 如何在 azure 搜索索引中创建建议器