小编Top*_*unt的帖子

Elixir:如何对(天真的)日期时间列表进行排序?

我有一个 NaiveDateTimes 列表,我想获得最新的。对 DateTimes / NaiveDateTimes 列表进行排序的最简单方法是什么?

我知道使用 Elixir 的标准排序规则是不安全的,因为它在结构上比较术语而不是查看日期的含义:

# UNSAFE / returns entries in incorrect order:
[~N[2020-02-29 10:00:01], ~N[2020-03-11 10:20:00], ~N[2020-03-15 10:00:00]] |> Enum.sort
# => [~N[2020-03-11 10:20:00], ~N[2020-03-15 10:00:00], ~N[2020-02-29 10:00:01]]
Run Code Online (Sandbox Code Playgroud)

sorting datetime elixir

3
推荐指数
2
解决办法
641
查看次数

Facebook Graph API v2.4不返回扩展的用户数据

我正在开发一个使用Facebook Graph API实现FB身份验证集成的应用程序.作为其中一部分,我们从Facebook获取用户的电子邮件,first_name和last_name,以便我们可以将电子邮件地址与我们数据库中的现有用户匹配,或者创建一个失败的新用户.

在Graph版本2.3中,我们可以使用以下请求轻松获取此信息,您可以在Graph API Explorer中测试运行,假设我们提供了具有权限的访问令牌,user_about_me并且email:

Request: https://graph.facebook.com/v2.4/10154900171335022
Response: 
{
  "id": "123456",
  "email": "buckeroo.banzai@gmail.com",
  "first_name": "Buckeroo",
  "gender": "male",
  "last_name": "Banzai",
  "link": "https://www.facebook.com/app_scoped_user_id/123456/",
  "locale": "en_US",
  "name": "Buckeroo Banzai",
  "timezone": -4,
  "updated_time": "2015-06-06T07:21:23+0000",
  "verified": true
}
Run Code Online (Sandbox Code Playgroud)

但是当我切换到API v2.4并尝试相同的请求时,即使我启用了所有权限,我也会得到以下无用的响应:

{
  "name": "Topher Hunt",
  "id": "10154900171335022"
}
Run Code Online (Sandbox Code Playgroud)

这与FB的API文档不匹配,这表明完整数据(包括电子邮件)仍应按照v2.3中的原样返回.

使用FB Graph v2.4时,有没有人成功找到获取用户电子邮件地址的方法?任何解决方法?也许我应该推迟升级?

提前致谢!

facebook-graph-api

2
推荐指数
1
解决办法
2640
查看次数

Elixir:如何反转地图(交换键和值)?

我有这样的地图:

%{
  "US" => "United States",
  "CA" => "Canada",
  "NL" => "The Netherlands"
}
Run Code Online (Sandbox Code Playgroud)

我想用值交换键,得到这样的映射:

%{
  "United States" => "US",
  "Canada" => "CA",
  "The Netherlands" => "NL"
}
Run Code Online (Sandbox Code Playgroud)

像这样“反转”或“反转”地图的最佳方法是什么?我在任何地方都没有看到专用的功能。

elixir

2
推荐指数
2
解决办法
99
查看次数

Elixir:如何作为客户端使用服务器发送的事件流?

我的 Phoenix 应用程序需要与第 3 方 API 集成,该 API 通过Server-Sent Events以流格式发送数据。我是第一次了解SSE;SSE 流看起来很像 Websocket,只不过它们是单向的并且更简单。

我看到很多关于如何从 Elixir 应用程序作为服务器发送SSE数据的建议(例如 1、2、3),但没有看到关于 Elixir 应用程序如何作为客户端使用SSE 数据流的建议。我看到的文章似乎假设客户端是浏览器中的 JS,但我知道 Ruby SSE 客户端存在(1 , 2),所以我认为没有强有力的技术原因说明 Elixir 应用程序无法充当上交所客户端。

在 Elixir 应用程序中使用 SSE 数据的最简单方法是什么?我将不胜感激任何指示和资源。

elixir server-sent-events

2
推荐指数
1
解决办法
1097
查看次数

Elixir/Phoenix:客户端/浏览器AJAX上传到S3

我的Elixir/Phoenix应用程序需要能够录制HTML5视频,允许用户查看他们录制的视频,然后通过AJAX将录制内容直接上传到S3进行存储,并向Elixir服务器发送POST以存储新上传的对象.在Rails世界中,有关于如何实现这一目标的各种宝石和冗长的教程; 在Elixir/Phoenix进行直接到S3文件上传的简单方法是什么?

ajax amazon-s3 elixir phoenix-framework

1
推荐指数
1
解决办法
648
查看次数

Chrome 中的通知 requireInteraction 设置已损坏?

我熟悉浏览器通知 API,但似乎无法requireInteraction在 Chrome 中使用该设置(我使用的是 Mac OSX,Chrome v89.0.4389.114。)我需要帮助确认这是否是已知的 Chrome 错误,或者也许我只是做错了什么。

授予通知权限后,从控制台运行以下命令会按预期显示瞬态通知,该通知会在大约 5 秒后消失:

new Notification("Test", {body: "Foo", requireInteraction: false})
Run Code Online (Sandbox Code Playgroud)

...而以下命令不会显示任何通知,即使是暂时的(尽管控制台显示返回的通知对象,该对象似乎设置了正确的值):

new Notification("Test", {body: "Foo", requireInteraction: true})
Run Code Online (Sandbox Code Playgroud)

换句话说,在我迄今为止的所有测试中,requireInteraction=true即使通知正确显示,也会导致通知根本不显示requireInteraction=false

据我所知,Chrome 因在没有警告的情况下多次破坏标准 JS API 而闻名,但令我惊讶的是,我找不到任何当前文档来确认这是一个已知问题。(相对地,requireInteraction似乎对 Firefox v86.0.1 也没有任何影响。但我会单独解决这个问题。)我想我预计通知 API 现在会比这更稳定。

任何有帮助的人都可以确认该requireInteraction设置是否适合您在最新的 Chrome 上(最好在 OSX 上,以尽量减少任何可能的平台差异)?这是浏览器错误吗?也许是 OSX 的限制?我使用的设置错误吗?或者这是一个已知问题,应该反映在 MDN 的浏览器兼容性表中?提前致谢!

notifications google-chrome

1
推荐指数
1
解决办法
888
查看次数

当标题长度超过约 4000 个字符时,Elixir Phoenix 应用程序返回 431 错误

当用户的浏览器积累了太多 cookie 时,我的 Phoenix 应用程序开始对某些页面请求给出 431 错误响应。(我们的网站是一个非常大的域的子域,许多 cookie 是在顶级域上全局设置的。)如何配置我的应用程序以允许更长的标头以避免此错误?

elixir http-headers phoenix-framework

1
推荐指数
1
解决办法
777
查看次数