首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FullContact Web钩子回调失败

FullContact Web钩子回调失败
EN

Stack Overflow用户
提问于 2017-03-20 20:15:47
回答 1查看 289关注 0票数 1

我正在使用FullContact读卡器API。根据我在请求处理名片时所能知道的,我需要向FullContact API发送一个名片的图像以及一个web钩子。

发送脚本:

代码语言:javascript
复制
<?php
$APIkey = 'my FullContact api key';
$callback_url = 'https://www.my-domain.com/my-callback-listener.php';
$url = "https://api.fullcontact.com/v2/cardReader?format=json&webhookUrl=$callback_url;
$imageAsBase64 = base64_encode(file_get_contents('path-to-image-including-extension'));
$requestBody = array();
$requestBody['front'] = $imageAsBase64;

$connection = curl_init();
curl_setopt($connection, CURLOPT_URL, $url);
curl_setopt($connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($connection, CURLOPT_POST, true);
curl_setopt($connection, CURLOPT_POSTFIELDS, json_encode($requestBody));
curl_setopt($connection, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'X-FullContact-APIKey: $APIkey'));  

$result = curl_exec($connection);

echo json_encode(array('result' => $result));
?>

回调侦听器脚本:

代码语言:javascript
复制
 <?php
 header('HTTP/1.1 200 OK');
 ?>

我知道发送脚本正在工作,因为curl结果包含由FullContact API分配的id。然后,当我通过在浏览器中手动输入以下url来引用该id时:

https://api.fullcontact.com/v2/cardReader/{id-assigned-from-FullContact}?apiKey={my-FullContact-api-key}

这就是我所收到的:

代码语言:javascript
复制
{
    "id": "id-assigned-from-FullContact",
    "lastWebhookAttempt": "2017-03-20T18:41:57.000Z",
    "vCardUrl":      "https://d1h3f0foa0xzdz.cloudfront.net/2971518/special-link-to-vcf-card.vcf",
    "status": "CALLBACK_FAILED",
    "webhookAttempts": 5,
    "webhookUrl":      "https://www.my-domain.com/my-callback-listener.php",
    "quality": "LOW",
    "submitted": "2017-03-20T18:28:27.000Z",
    "contact": {
       "photos": [{
          "primary": true,
          "value": "https://d1h3f0foa0xzdz.cloudfront.net/2971518/special-link-to-image-of-business-card.png",
          "type": "BusinessCard"
       }],
       "organizations": [{
          "title": "Senior Sales Consultant",
          "isPrimary": true,
          "name": "Company ABC"
       }],
       "name": {
          "middleName": null,
          "honorificPrefix": null,
          "familyName": "Meek",
          "givenName": "Jack",
          "honorificSuffix": null
       },
       "emails": [{
          "value": "person@something.com",
          "type": "Work"
       }],
       "phoneNumbers": [
          {
             "value": "+1 123-987-6543 ext. 5159069",
             "type": "Work"
          },
          {
             "value": "+1 123-456-6789",
             "type": "Mobile"
          },
          {
             "value": "886 123-4567",
             "type": "Work Fax"
          }
       ],
       "addresses": [{
          "region": null,
          "streetAddress": "1234 Nowhere Dr,",
          "formatted": null,
          "postalCode": "48377",
          "extendedAddress": null,
          "locality": "Novi",
          "type": "Work",
          "country": "United States"
       }]
    }
 }

您可以在上面的结果中看到,FullContact API正在5次尝试调用我的回调侦听器脚本,最终导致CALLBACK_FAILED。但是,我的回调脚本只包含HTTP/1.1 200 OK,它应该工作得很好。这告诉我,由于某些原因,我的回调脚本无法访问。我的站点是使用他们的共享托管平台SSL在GoDaddy上托管的。

有人知道GoDaddy是否阻止了某些网络钩子流量吗?任何帮助都将不胜感激!

我试着查看了FullContact文档,但是它没有提供关于webhooks如何返回数据的任何清晰的细节。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 19:56:38

因此,我最终接触到了我的网络主机(GoDaddy)和FullContact。我有一个与GoDaddy共享的托管平台,因此它们限制了大量的端口号。FullContact向我保证,他们只使用端口80或443。

为了解决这个问题,我最终不得不创建一个本地xampp服务器并使其公开可用。然后,我指示FullContact使用我的本地服务器作为我的web钩子。

我运行了一些测试,并使用php来提取ip地址、主机名和端口号。以下是研究结果:

测试1.

主机地址: 52.70.48.63

主机名称:EC2-52-70-48-63.Computer-1.amazonaws.com

port#:63498

测试2。

主机地址: 52.70.48.63

主机名称:EC2-52-70-48-63.Computer-1.amazonaws.com

port#:4169

测试3。

主机地址: 52.70.48.63

主机名称:EC2-52-70-48-63.Computer-1.amazonaws.com

port#:61425

所有返回的端口号都被GoDaddy阻塞。从FullContact接收数据的唯一方法是使用本地服务器。案子结了。希望有一天这能帮到别人!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42913154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档