我正在编写一个程序来从Podio读取JSON字符串,然后将内容转换为c#对象.
但在阅读饲料时,我遇到了一种奇怪的形式; 在对象的相同层次级别,有时字段[value]的值是字符串,但有时它是一个复杂的对象.
示例如下.
它在某些地方就像
"values":[
{
"value":"Bug on User Interface, Ajax sometimes does not load properly"
}
],
"type":"text"
Run Code Online (Sandbox Code Playgroud)
然后在下一个项目中,在层次结构中的同一级别,它就像
"values":[
{
"value":{
"perma_link":"https:\/\/ds-test.podio.com\/myworkspace\/files\/23529948",
"mimetype":"image\/jpeg",
"hosted_by":"podio",
"name":"217820_274164679355286_689330144_n.jpg",
"hosted_by_humanized_name":"Podio",
"description":null,
"thumbnail_link":"https:\/\/files.podio.com\/23529948",
"link":"https:\/\/files.podio.com\/23529948",
"file_id":23529948,
"size":39698
}
}
],
"type":"image"
Run Code Online (Sandbox Code Playgroud)
注意"type"的值:对于第一个实例,它是"text",然后对于下一个实例,它是"image".因为它们位于层次结构的同一级别,所以我不知道如何为它们设计对象,以便DataContractJsonSerializer.Read
方法顺利运行.
问候,
我在尝试下载附加到Podio项目的文件时遇到问题:
podio.request('get', '/file/{file_id}/raw').then(console.log);
Run Code Online (Sandbox Code Playgroud)
以上程序显示:
{}
Run Code Online (Sandbox Code Playgroud)
这是一个JSON字符串化的空对象(而不是原始文件内容).
细节:
file_id
项目的图像字段时有效,但不能从文件附件(在我的情况下为pdf文件)中使用./item/app/{app_id}/filter
获取项目列表时,属性file_count
已设置,但不是files
.我必须/item/{item_id}
单独要求获得files
包含在响应中的属性,不知道为什么.问题:您知道问题是什么,以及如何下载原始附件?
编辑:aditionnal信息
如果我使用以下命令请求单个文件元数据:
podio.request('get', '/file/1234').then(console.log);
Run Code Online (Sandbox Code Playgroud)
我得到一个文件JSON对象,其中包含许多字段,但不包含文件内容:
{
...
link: 'https://files.podio.com/1234',
file_id: 1234,
...
}
Run Code Online (Sandbox Code Playgroud)
正如我对@stengaard的评论中所述,如果我尝试为上述链接请求API,则响应如下:
{ [PodioNotFoundError: [object Object]]
message:
{ error_parameters: {},
error_detail: null,
error_propagate: false,
request:
{ url: 'http://api.podio.com/1234',
query_string: '',
method: 'GET' },
error_description: 'No matching operation could be found. The path \'/1234\' was not found..',
error: 'not_found' },
status: 404,
url: …
Run Code Online (Sandbox Code Playgroud) 使用Podio API创建新项目或更新现有项目时,将DateTime字段值设置为:( 2016-10-21 14:15:00
作为示例).哪个时区将用于存储此DateTime?
例如请求:
app_id = <some app with title and date fields>
content = {'title' => 'Date set to "14:15"',
'date' => {'start' => '2016-10-21 14:15:00',
'end' => '2016-10-21 15:00:00'}}
item = Podio::Item.create(app_id, 'fields' => content)
Run Code Online (Sandbox Code Playgroud)
结果:
'start_date_utc' => 2016-10-21
'end' => 2016-10-21 15:00:00
'end_date' => 2016-10-21
'end_date_utc' => 2016-10-21
'start_time_utc' => 12:15:00
'start_time' => 14:15:00
'start_date' => 2016-10-21
'start' => 2016-10-21 14:15:00
'end_time' => 15:00:00
'end_time_utc' => 13:00:00
'end_utc' => 2016-10-21 13:00:00
'start_utc' …
Run Code Online (Sandbox Code Playgroud) 当我查看"更新视图"端点的文档时,可用的信息非常少(请参阅https://developers.podio.com/doc/views/update-view-20069949).当前文档声明端点接受一个参数view_id,但似乎API使用者也希望能够提供其他详细信息来修改视图的定义.
是否有任何示例代码可用于演示如何使用此端点?
from pypodio2 import api
# Authenticate as App
podio_client = api.OAuthAppClient(
client_id=PODIO_CLIENT_ID,
client_secret=PODIO_CLIENT_SECRET,
app_id=PODIO_APP_ID,
app_token=PODIO_APP_TOKEN,
)
# Set limit to 100
items = podio_client.Item.filter(app_id=PODIO_APP_ID, attributes={}, limit=100)
Run Code Online (Sandbox Code Playgroud)
我的应用程序共有 251 个项目,我预计 API 将返回 100 个项目,但它只返回 20 个...如何解决此问题?
打印(项目['总计'])
第251章
打印(项目['过滤'])
第251章
打印(len(项目['项目'])
20
更新
我用 requests 库尝试过,但仍然没有成功......
import requests
payload = {
"filters":{},
"limit": 30
}
resp = requests.post(url="https://api.podio.com/item/app/randomappid/filter/",
headers={'authorization': 'OAuth2 randomn0mber'},
data=payload)
Run Code Online (Sandbox Code Playgroud)
len(resp.json()['项目'])
20
API调用文档:https://developers.podio.com/doc/items/filter-items-4496747
我正在创建一个与Podio集成的PHP脚本..我想我没事,但我无法验证来自Podio网站的webhook ..你能告诉我我做错了什么吗?这是我的代码:
require_once '../lib/Podio/PodioAPI.php';
require_once '../lib/Podio/__cfg.php';
Podio::setup(CLIENT_ID, CLIENT_SECRET);
if (!Podio::is_authenticated()) {
Podio::authenticate('app', array('app_id' => APP_ID, 'app_token' => APP_TOKEN));
}
if ($_POST) {
switch ($_POST['type']) {
case 'item.create' :
$item = PodioItem::get($_POST['item_id']);
doMyStuff('create',$item);
break;
case 'item.update' :
$item = PodioItem::get($_POST['item_id']);
doMyStuff('update',$item);
break;
}
}
Run Code Online (Sandbox Code Playgroud) 这是一个跑道 API 问题...
如何获取与项目关联的文件 ID(假设我知道项目 ID)。我在 API 文档中找不到。
我有一个名为origin的位置字段和一个名为distination的字段.我试图通过使用Origin和Destination字段中的地址来计算第三个称为距离的字段?实现这一目标的最简单方法是什么?
这是一个想法.使用Google地图的目标API获取2个位置字段之间的距离.我不确定如何进行这两个API调用.
运行pypodio2
我正在尝试构建一个简单的脚本,该脚本使用item filter命令提取一组过滤的项目.我自己使用它来自动生成发票.
我的最终游戏是按计算的日期字段过滤 - 即该字段从关系中提取日期.
但是到目前为止似乎无法满足我对过滤任何值的请求.这是我希望在app中提取所有项目的示例,其中quantity-kg值为10.
c.Item.filter(14928728,attributes={'filter_by':[{"quantity-kg":10}]})
Run Code Online (Sandbox Code Playgroud)
这将返回应用程序中的所有项目.
我尝试了一些不同的东西,但似乎无法解决这个问题.
首先,我想确定传递简单请求的正确语法,然后确定如何将请求传递给按日期过滤.
我目前正在研究Podio集成,我偶然发现了一些文章,这些文章没有给出明确的答案,刷新资本是否会自动失效,在这种情况下获取新刷新令牌的确切流程是什么.
文章:
Podio刷新令牌到期 - 它不会过期(从用户名中有Podio的人回答,最近)
https://help.podio.com/hc/en-us/community/posts/206669587-Get-new-refresh-token - 它过期了,你把它作为响应的一部分而不是rly?有一些讨论没有结论
我问这个是因为我使用了很多服务和OAuth实现,但它是第一次刷新令牌实际上变得无效.那么如果28天过去了那么用户必须重新认证?或者只是令牌无效但"授权"仍然存在?我不得不说它很混乱,因为我习惯于接近grant ==刷新令牌,但我理解它与OAuth规范有关.另外我们只想在db中存储刷新令牌.我很想测试它,但我不想等待28天.
文档没有明确说明刷新令牌的生命周期是什么.
我喜欢Podio的某个人给出明确的答案.刷新令牌是否过期,只有在完全不活动(没有api调用)或只是固定数量时,以及在什么情况下(不活动或时间过去),获取刷新令牌的确切流程是什么,它是否需要用户重新认证?
我正在构建一个允许人们生成简单电子邮件的应用程序 - 所以我想给用户一个即插即用的体验.登录一次,它就可以正常工作.当您对podio帐户进行更改时,会通过webhooks触发电子邮件
我知道Podio移交的podio刷新令牌存在28天.虽然这最初工作得很好,但28天后,我的应用程序将停止为注册Podio的用户工作并期望它完美无瑕.更难的是,没有办法找出刷新令牌何时到期以及什么时候我将获得新的刷新令牌.在28天期限到期之前是1小时,2小时还是3小时?
要求用户每28天登录一次,这样我就可以获得新的刷新令牌听起来不可行.
所以我的问题是
1)何时为我的用户生成新的刷新令牌
2)令牌失效只会使访问令牌无法刷新令牌.为什么这样?
我之前在podio论坛上看过类似的问题,但没有一个得到回答
https://help.podio.com/hc/en-us/community/posts/206669587-Get-new-refresh-token
我们尝试使用此https://developers.podio.com/doc/tasks/get-tasks-77949 - Sandbox 检索组织下的任务.我们只获得100个任务,但我们需要完成整个任务.我们有什么方法可以获得超过100个任务.请帮忙.
谢谢.