我正在使用Greenhouse API构建一个工作板,在作业应用程序表单数据的SSL / TLS的HTTP Basic Auth的最后一步上有点卡住了。特别是动作=“!!请求你的服务器必须进行!!”位于下方。
任何人都可以指出我如何实现这个目标的正确方向:
描述:/ applications方法接受表示作业应用程序的多部分表单POST。此方法需要HTTP Basic Auth over SSL / TLS:Basic Auth用户名是您的API密钥(位于API凭据页面上),不需要密码。正确表示此方法所需数据的表单将通过/ job API方法提供的“questions”数组构建,这组字段是特定于作业的(在作业方法文档中提供了更多详细信息)。
https://api.greenhouse.io/v1/applications/
<!--
EXAMPLE FORM BELOW (simplified):
Please keep in mind that the HTTP Basic Auth API token is a secret key. Any form posts should be proxied by your own servers. Any direct post to the /applications POST method would reveal your secret key to anybody that views source--which would be a very bad thing.
-->
<form method="POST" action="!!REQUEST MUST BE PROXIED ON YOUR SERVERS!!" enctype='multipart/form-data'>
<!-- represents the ID of the job -->
<input type="hidden" name="id" value="55555" />
<!-- place the value of the gh_src URL parameter in the field below -->
<input type="hidden" name="mapped_url_token" />
<label>First Name <input type="text" name="first_name" /></label><br/>
<label>Last Name <input type="text" name="last_name" /></label><br/>
<label>Email <input type="text" name="email" /></label><br/>
<label>Phone <input type="text" name="phone" /></label><br/>
<label>Resume <input type="file" name="resume" /></label><br/>
<label>Cover Letter <input type="file" name="cover_letter" /></label><br/>
<label>LinkedIn Profile <input type="text" name="question_5555" /></label><br/>
<label>Some dropdown
<select name="question_3333">
<option></option>
<option value="1">Yes</option>
<option value="0">No</option>
</select>
</label><br/>
<label>Multi select with checkboxes<br/>
<label><input type="checkbox" name="question_2222[]" value="2" /> Red</label><br/>
<label><input type="checkbox" name="question_2222[]" value="5" /> Orange</label>
</label><br/>
<input type="submit" />
</form>
答案 0 :(得分:3)
我构建了一个自定义Drupal模块,该模块使用Greenhouse Job Board API生成自定义应用程序表单。我最终做了以下事情:
我创建了一个自定义PHP库来使用API。
我使用了$job = $greenhouse->getJob([JOB_ID], true);
。第二个参数表示是否返回问题字段。
我使用Drupal的表单API和上面请求中返回的问题字段构建了表单。
在表单提交中,我获取了所有提交的变量,并使用PHP Curl Class将其传递给Greenhouse。
对于简历/求职信字段,您必须提交多部分数据。确保您的请求标头包含:Content-Type: multipart/form-data; boundary=[YOUR_CUSTOM_BOUNDARY]
通过Curl将所有数据发布到https://[API-KEY]@api.greenhouse.io/v1/applications/
。
答案 1 :(得分:2)
他们要求您将表单发布到您自己的服务器上,然后让您的服务器POST到温室。否则,您需要在呈现的HTML中包含您的秘密和/或凭据,在这种情况下,任何人都可以提取它。
因此,您的HTML表单action
属性将类似于:
<form method="POST" action="/applications/new" enctype="multipart/form-data">
然后你需要一个服务器端端点(Node,PHP,Ruby,Perl等)从浏览器获取表单输入并使用服务器端POST将其发送到Greenhouse。
对于BASIC身份验证,您将在凭据中包含您的凭据和/或机密作为标头。
当他们提到它必须是“over SSL / TLS”时,这意味着您必须在服务器端代码中使用“https”作为温室API URL。