Podio Javascript SDK:客户端限制显示来自Podio的图像
Podio Javascript SDK: Client Restricted from displaying Image from podio
我目前正在使用Podio JS SDK连接到Podio REST API。我已经设置了一个登录屏幕,以便使用用户名和密码身份验证流捕获用户名和密码。
我可以提出请求并得到我需要的信息。在我的请求之一,我收到一个图像url。然后将img url放入图像标记中,如下所示
<img src="img.url"/>
问题是我的客户端无法不查看图像。我在这里看了看处理文件是为了找到答案。
问题是图像只能由当前登录的用户在客户端中查看,但我已经进行了身份验证。
我错过了什么吗?我怎么能显示图像,因为我已经登录了用户名和密码,我存储access_token, refresh_token等在本地存储,可以使所有其他必要的调用。
尝试通过标头发送图像。这在过去是可行的,尽管这是一个相当笨拙的解决方案。可能会被新的PodioAPI弃用。
首先设置你的函数。
function showImage($item, $index, $id, $style = '', $class='', $alt='',$imgtitle='') {
foreach($item->fields as $field) {
if($field->field_id== $id) {
$picture_id = $field->values[$index]['value']['file_id'];
echo "<img style='$style' class='$class' src='getImage.php?id=$picture_id' alt='$alt' title='$imgtitle' />";
global $picture_id;
}
}
}
这将是您的getimage.php。你也可以像这样设置一个PDF。
$img_id = $_GET['id'];
$cache = new cache(
...
);
$file_id = "image{$img_id}";
if(!$cache->has($file_id)) {
$file = $cache->set($file_id, PodioFile::get($img_id));
} else {
$file = $cache->get($file_id);
}
$picture_id = "image_cache_{$img_id}";
if(!$cache->has($picture_id)) {
$image = $cache->set($picture_id, Podio::get($file->link, array(), array('file_download' => true))->body);
} else {
$image = $cache->get($picture_id);
}
header('Content-Type: image/png');
echo $image;
希望能有所帮助。
虽然你有一个访问令牌,可以通过使用用户名和密码认证访问你所有的podio数据,podio的认证是基于cookie的,所以如果你的客户端不通过podio web应用程序的登录屏幕进行认证,你的客户端将无法直接从web应用程序读取图像。你的访问将被阻止。
<解决方案/strong>
如果您不通过客户端进行身份验证,但可以访问api,则可以从这里下载原始图像数据:https://api.podio.com/file/{{imgId}}/raw
。一旦你得到原始图像数据,你可以将数据编码为base64格式,你使用一个数据URI作为<img>
标签的src
在你的客户端,如果它是一个web客户端。
- 如何使用url加载程序在webpack中导入多个图像
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 角度:在ng重复上切换图像
- 画廊图像未显示
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- Javascript排序的图像弹出窗口..可以't单独弹出
- 画布数据到图像
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 使图像在单击时展开到不大于浏览器
- Html页面上的多个Base64图像和平滑加载
- UIAutomation放大图像
- 使用javascript在Flash中加载外部图像
- 可以在这里为背景图像设置滤镜吗
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 使用 js 将背景图像设置为 HTML
- Javascript将图像src更改为淡入淡出
- 无法在本地计算机中将画布另存为图像
- 压缩phonegap中ios的图像插件
- Podio Javascript SDK:客户端限制显示来自Podio的图像