【问题标题】:How to get list of skills like Linkedin?如何获取 Linkedin 等技能列表?
【发布时间】:2021-05-10 13:11:44
【问题描述】:

我正在开发一个 android 应用程序,人们将在其中分享他们的技能之类的东西,但现在我想要一个技能列表,以便用户可以轻松地从 AutoCompleteTextView 的建议中搜索并选择一项技能,例如 linkedin。

但是对于 autoCompleteTextView,我们需要一个字符串数组来显示在 autoComplete 列表中。但我找不到任何 api。而且我也无法在 stings.xml 中的应用程序中创建字符串数组,因为它会将 apk 的大小增加到 5 到 6 MB。

我需要一个解决方案。

【问题讨论】:

  • 您的问题是关于如何获取技能列表或如何将其添加到视图中?
  • 嘿@UlrichStark 我会通过观看教程来添加它,或者稍后在这里提问,但现在的问题是“如何获得技能列表”?
  • 你可以在互联网上找到免费资源或自己创建列表...我认为没有其他选择
  • 我已经对此进行了很多搜索,但我没有找到任何方法,所以我在这里问了。

标签: android arrays api autocompletetextview


【解决方案1】:

我不知道任何流行的技能列表 API,但您可以尝试 this Open API 或 this one。第一个很旧,我认为它没有更新和格式正确(技能名称)。第二个更像是一个分析器,但也许它们也为技能提供 API。另外,还有一个叫“EMSI Skills API”的网站,虽然我不知道它是否真的提供了Skills API。

【讨论】:

  • 哇! @S.M 你太棒了,这两个 API 看起来都很有用,第二个是付费的。嘿兄弟,我还需要一个帮助,你能告诉我如何在我的 android 应用程序中使用第一个 github api。我已经在 python 中看到了所有英文单词的类似 api,我真的不知道如何在 kotlin 中使用它们。请向我推荐任何文章或教程,您会非常感谢我。
  • 是的,第 2 次是付费的,但他们确实为较低的操作提供了免费计划。使用 Retrofit 获取 API 数据。如果有人以前从未使用过 API,一开始可能会觉得一团糟,但你可以找到很多关于它的教程。只需搜索“Kotlin and Retrofit 2 Tutorial”。
  • 也许这有帮助:- youtube.com/watch?v=sBCE_hOFnQU
  • 非常感谢@SM,您非常乐于助人,非常友善❣️,我检查了教程以及 EMSI,它看起来就像我正在寻找的......这是最好的之一我得到的赏金答案。
【解决方案2】:

只是在上面的答案上添加更多内容,您可以探索 EMSI Skills API 以获得技能的主列表(大约 30k),您所要做的就是注册并获得必要的访问密钥.以下是从 EMSI SKILLS API 获取技能数据的示例 Python 代码

import requests
import json
import numpy as np
from pandas.io.json import json_normalize

auth_endpoint = "https://auth.emsicloud.com/connect/token" # auth endpoint

client_id = "ajhdjhaDJqwjjskfjksdjfklj" # replace 'your_client_id' with your client id from your api invite email
client_secret = "asjsajf" # replace 'your_client_secret' with your client secret from your api invite email
scope = "emsi_open" # ok to leave as is, this is the scope we will used

payload = "client_id=" + client_id + "&client_secret=" + client_secret + "&grant_type=client_credentials&scope=" + scope # set credentials and scope
headers = {'content-type': 'application/x-www-form-urlencoded'} # headers for the response
access_token = json.loads((requests.request("POST", auth_endpoint, data=payload, headers=headers)).text)['access_token'] # grabs request's text and loads as JSON, then pulls the access token from that

def extract_skills_list():
  all_skills_endpoint = "https://emsiservices.com/skills/versions/latest/skills" # List of all skills endpoint
  auth = "Authorization: Bearer " + access_token # Auth string including access token from above
  headers = {'authorization': auth} # headers
  response = requests.request("GET", all_skills_endpoint, headers=headers) # response
  response = response.json()['data'] # the data

  all_skills_df = pd.DataFrame(json_normalize(response)) # Where response is a JSON object drilled down to the level of 'data' key
  all_skills_df.to_excel('all_skills_emsi.xlsx')

extract_skills_list()

【讨论】:

  • 非常感谢您的回答。
  • 在拥有客户端 ID、机密和范围的情况下如何获取 EMSi API?
  • 只需替换上面python代码中client_id、secret和score的值即可。这是您需要调用“emsiservices.com/skills/versions/latest/skills”的技能 API 的端点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
相关资源
最近更新 更多