我真的不了解该API应该如何工作,因为我以前从未使用过JSON。
该文档没有给出任何示例,但是它说该API的端点同时支持POST和GET操作,并返回JSON。
我的问题是,我不确定如何实现此功能,假设我只想将所有数据提取到一个简单的页面中,例如:
城市: 塞勒姆
邮政编码: 97302
等等…
我不太确定从哪里开始:
POST http:// [您的RepMan主机名] /api/v1/account/reputation/current.json GET http:// [您的RepMan主机名] /api/v1/account/reputation/current.json 以下是POST正文或GET查询字符串的参数列表。所有值均应按照常规POST正文或GET查询字符串进行正确编码。
POST http:// [您的RepMan主机名] /api/v1/account/reputation/current.json
GET http:// [您的RepMan主机名] /api/v1/account/reputation/current.json
以下是POST正文或GET查询字符串的参数列表。所有值均应按照常规POST正文或GET查询字符串进行正确编码。
| Field | Ordinality | Datatype | Description | pid | 1 | string | This is your partner ID as provided by us to access the API. | apiKey | 1 | string | This is your API Key as provided by use to access the API. | srid | ? | string | This is the unique RepMan ID for the account. Either this or customerId must be specified. | customerId | ? | string | This is your unique customer id for the account. Either this or srid must be specified.
对于200的响应,您将收到以下JSON内容:
{ account : { srid : "DW5SRB36", lastName : "Morimoto", pid : "SRP", customerId : null, firstName : "Masaharu" }, company : { city : "New York", postalZip : "10011", provState : "NY", name : "Morimoto", address : "88 10th Ave" }, visibility : { found : 18, missing : 9 }, reviews : { 1star : 5, 4star : 37, 3star : 44, 5star : 66, 2star : 5 }, competition : { Restaurants in New York : { Megu : 1.82, Morimoto: 52.95, Matsuri : 18.13, Buddakan: 0.93, Nobu : 26.17 } }, social : { checkins : 5015, twitter_followers : 8154, facebook_likes : 1134 }, mentions : { 07-09-2011 : { positive : 0, neutral : 0, negative : 0 }, 07-07-2011: { positive : 2, neutral : 3, negative : 0 }, 07-05-2011: { positive : 1, neutral : 2, negative : 0 }, 07-11-2011: { positive : 2, neutral : 2, negative : 0 }, 07-06-2011: { positive : 5, neutral : 2, negative : 0 }, 07-10-2011: { positive : 3, neutral : 4, negative : 0 }, 07-08-2011: { positive : 1, neutral : 5, negative : 0 } } } }
首先要尝试的是在网络浏览器中尝试一些请求。从那里,应该很清楚您需要做什么。
从您的基本网址开始:
http://[your RepMan hostname]/api/v1/account/reputation/current.json
显然,您必须插入主机名代替[your RepMan hostname]。从那里,我们添加一个查询字符串。您之前已经看过这些内容……它们?位于URL中的问号之后,并包含形式为的键/值对key1=value1&key2=value2。你有4个变量插件: pid,apiKey,srid,和customerId。不知道此Web服务的作用,很难帮助您知道要插入的值,但是这里有一个示例:
[your RepMan hostname]
?
key1=value1&key2=value2
pid
apiKey
srid
customerId
http://example.com/api/v1/account/reputation/current.json?pid=12345&apiKey=asdf&srid=34&customerid=98765
使用所需的参数手动构建一个有效的URL,然后在浏览器中进行尝试。完成此操作后,您将看到一些文本结构以JSON格式返回。这是与JavaScript解析器兼容的文本,但实际上与JavaScript分开。
现在,如何使用PHP进行操作?一种快速的方法是使用file_get_contents()和json_decode()。
file_get_contents()
json_decode()
$response = file_get_contents('plug your URL in here'); $responseObject = json_decode($response); print_r($responseObject);
基本上,file_get_contents()将在该URL上加载数据,并json_decode()采用对象的文本表示形式并将其转换为真实的PHP对象。从那里您可以做到echo $responseObject->social->checkins或类似。
echo $responseObject->social->checkins
现在,您应该研究使用cURL而不是file_get_contents()。这将使您对请求有更多的控制,并使您更轻松地访问响应状态代码。当您以后要为该请求设置时间限制或需要处理失败时,这将非常重要。另外,请确保使用urlencode()或http_build_query()构建查询字符串。这样,保留字符(例如空格)将转换为其编码形式,例如%20。
urlencode()
http_build_query()
%20