我正在努力建立一个网站,在其中我可以追踪我的健康和营养。
我想使用美国农业部提供的API http://ndb.nal.usda.gov/ndb/doc/apilist/API-FOOD-REPORT.md
这就是我想去的地方
http://nutritiondata.self.com/facts/cereal-grains-and-pasta/5680/2
不完全相同但相似,但持续跟踪并能够将我吃过的食物记录到我自己的数据库中。
欣赏那里有提供此功能的应用程序(myplate),例如我真的很喜欢自己做这种事情的挑战。
我已经设置了一个Joomla网站, 我已经检查过CURL是否可用并且处于活动状态 我已经安装了NoNumber的Sorcerer 我已经阅读了很多关于卷曲事件构建的文章。
如何将数据返回到我的页面 最接近的(我认为我已经有了)
$ch = curl -H "Content-Type:application/json" -d '{"ndbno":"01009","type":"f"}' DEMO_KEY@api.nal.usda.gov/ndb/reports;
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
这使我的网站脱机并出现错误Parse错误:语法错误,意外的''“Content-Type:application / json'(T_CONSTANT_ENCAPSED_STRING)在/ mounted-storage / home147 / sub036 / sc85544-PGMS / Domain / plugins / system / sourcerer / helper.php(570):第8行的运行时创建函数
致命错误:函数名称必须是第575行/mounted-storage/home147/sub036/sc85544-PGMS/Domain/plugins/system/sourcerer/helper.php中的字符串。
答案 0 :(得分:0)
使用Sorcerer时,您可能希望以WYSIWYG模式编辑内容。你的sytax看起来像:
{source}
<?php
$ch = curl -H "Content-Type:application/json" -d '{"ndbno":"01009","type":"f"}' DEMO_KEY@api.nal.usda.gov/ndb/reports;
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch); curl_close($ch);
fclose($fp);
{/source}
请注意,如果您这样做,您的“源代码”很可能是URL编码的。我提到这一点是因为我怀疑单引号或双引号可能会干扰内容解析。这可以通过编写代码并封装它来解决(使用{source} ... {/ source}处于wysiwyg模式。但这只是猜测。
另一个选择是,如果你需要做的就是显示JSON API响应的内容,你可能想要使用jQuery Ajax。
示例:
我将首先向您展示示例jQuery Ajax语法,然后显示可显示输出的div容器的html。请注意,标题行是可选的(取决于API的要求)。
jQuery(document).ready(function(){
var requestUrl= "https://www.annatech.com/api/v1/content/single/31";
jQuery.ajax({
url: requestUrl,
type: "GET",
headers: { 'token': '9YZi+i7tPpLedg9LtFcuu8rUL3eiCnYuGnNH:650' },
success: function (resultData) {
jQuery( "#output" ).append(resultData.article.introtext).html;
},
error: function (jqXHR, textStatus, errorThrown) {
alert('error');
},
timeout: 120000
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h1>Test AJAX page load</h1>
<div id="output"></div>
以上示例使用cAPI Joomla Rest API http://getcapi.org。免责声明:我开发了它。
如您所见,可以查询RESTful JSON API并直接在网页上(所有客户端,在浏览器中)输出内容。上面的示例甚至通过标头传递令牌来验证对受限页面的访问。