1

我目前有一个网络应用程序,它使用谷歌地图 API、PHP 和 MySQL 在地图上填充自定义地图气泡和标记。

目前,该应用程序由我们托管并由我们管理,并作为 iframe 包含在客户页面上,但这很烦人..

我想开发一个可以包含在页面上的 API/库,然后将代码注入到 div 容器中(就像谷歌地图一样)。但是,我不知道要搜索什么或阅读什么来学习。

我有一个基本的 rest api,它被配置为向授权客户端提供 json/jsonp 格式的只读功能。我正在为 CI 使用 Phil Sturgeon 的 REST-SERVER 库。

这是当前格式的链接,我们将此页面拉到没有滚动条的 iframe 中。 http://fhaz.mapitusa.com

更新:我找到了部分解决方案.. 网络小部件http ://alexmarandon.com/articles/web_widget_jquery/

我需要开发一个网络小部件。

我需要知道:

  1. 学什么
  2. 要了解哪些类型的编程方法
  3. 寻找什么例子
  4. 有哪些选择可以摆脱 iframe 并使用一种“硬嵌入”。
4

1 回答 1

1

你没有大声说出来,但是因为你特别提到你现在有一个只读 api 我想你也想向(你的)服务器发送命令。我将从研究身份验证方法开始。为此,我会选择 OAuth。您必须编写一个基本的客户端类,它可以将客户端连接到服务器并对其进行身份验证。这可以非常简单和小。PHP 甚至有一个 pecl 扩展可用(参见http://nl.php.net/manual/en/book.oauth.php),它非常易于使用。如果您没有安装 pecl 扩展的可能性,curl 也可以解决问题,即使这样也不是必需的。Twitter 还对 OAuth 的工作原理进行了很好的解释,并提供了指向外部资源的链接。看看这个!https://dev.twitter.com/docs/auth/oauth

请注意,在服务器级别,您必须实现自己的角色系统,oauth 只允许您的客户端以安全的方式连接到服务器。IE。它将让您的“用户”登录到您的应用程序,但不会检查登录用户是否(例如给出的示例)是具有所有权限的管理员用户、只读用户或中间的用户。

如果您已经理顺了 OAuth,只需编写一个您想要实现的 API 调用列表。您应该命名它们,例如:

/map/marker/get
/map/marker/set
/map/bubble/get
...

您的客户端 API 应该能够进行如下调用:

$api = new MyGreatApi();
$params = array('id' => 3, 'color' => 'red', ...);
$response = $api->call('/map/marker/get', $params);
echo $response;

查看一些 oauth 库实现,例如 Twitter 推广的那个 (https://dev.twitter.com/docs/twitter-libraries#php),或者例如运行时使用的非常简单的一位 (http://developer. longtailvideo.com/botr/downloads/php-api-kit.zip)

在服务器级别,您捕获 api 调用并将请求路由到特定控制器(使用一些 MVC 术语)。例如,如果你获取调用'/map/marker/get',你可以explode('/', $call);搜索正确的类/函数/方法/任何东西,让它为你做魔法,然后发回输出(可以是很简单echo $output),你就可以开始运行了!请注意,如果您具有身份验证和角色检查权限,则可以将产生输出的函数视为普通、oldschool、php 函数。他们没有什么特别的!api 调用的身份验证和路由应该是您主要关心的问题。

我希望这能澄清你的一些问题并给你一个方向。如果我误解了你的问题,请纠正我!

于 2012-04-17T14:01:04.280 回答