我有一个钩子,我想得到external_id。 请你帮助我好吗? 我需要使用哪个事件来获取external_id?
答案 0 :(得分:1)
有一种方法可以详细说明一个项目 https://developers.podio.com/doc/items/get-item-22360
这里我附上了Java SDK的代码示例。希望它有所帮助
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.podio.app.AppAPI;
import com.podio.app.ApplicationField;
import com.podio.common.Reference;
import com.podio.common.ReferenceType;
import com.podio.contact.Profile;
import com.podio.file.FileAPI;
import com.podio.item.FieldValuesUpdate;
import com.podio.item.FieldValuesView;
import com.podio.item.ItemAPI;
import com.podio.item.ItemBadge;
import com.podio.item.ItemCreate;
import com.podio.item.ItemUpdate;
import com.podio.item.ItemsResponse;
import com.podio.oauth.OAuthClientCredentials;
import com.podio.oauth.OAuthUsernameCredentials;
import com.podio.task.Task;
import com.podio.task.TaskAPI;
import com.podio.user.UserAPI;
public class APICall implements Serializable {
public static void main(String as[]){
APICall apiObj = new APICall();
apiObj.apicall();
}
/**
*
*/
public void apicall()
{
try{
System.out.println("inside");
ResourceFactory resourceFactory = new ResourceFactory(new OAuthClientCredentials("<your app name>","<your client secret>"),new OAuthUsernameCredentials("<user_name>", "<password>"));
//List<filters>
ItemAPI itapi = new ItemAPI(resourceFactory);
ItemsResponse itres =itapi.getItems(<item_id>, null, null, null, null, null);
List<ItemBadge> li= itres.getItems();
for (ItemBadge ib : li ){
List<FieldValuesView> listvals =ib.getFields();
for (FieldValuesView val : listvals ){
System.out.println(val.getValues()+"--"+val.getExternalId());
}
FileAPI fapi = new FileAPI(resourceFactory);
java.io.File file = new java.io.File("/Users/brijeshluckria/Downloads/Contacts - All Contacts.xlsx");
System.out.println(file.getAbsolutePath()+"::"+file.exists());
int id=fapi.uploadFile("Apifile",file);
System.out.println("ids"+id);
答案 1 :(得分:1)
external_id
和item.create
个钩子发送了 item.update
参数。为了发送它,项目需要它:)
因此,如果您只是从Podio网站创建项目,该项目将不会有任何external_id
。但是,如果您通过API创建项目并指定external_id,那么它将在那里。
以下是 Ruby :
attr = {:fields => { :title => 'Created with external ID'},
:external_id => 'exernal_id_for_demo' }
item = Podio::Item.create(app_id, attr)
然后webhook item.create
将是:
item_id: 720040614
item_revision_id: 0
type: item.create
hook_id: 7243151
external_id: exernal_id_for_demo
当item没有external_id时,当调用webhook时,你只会获得一个item_id作为POST参数。使用此命令发出API请求以获取调用webhook的项目,然后您可以获取所有项目详细信息。您还可以获取项目修订,以查看更新了哪个字段。
您还可以为不同的字段创建几个不同的webhook
正如文件所说:
Additionally, the three hooks item.create, item.update and item.delete can also work on a field level. If you use "app_field" as the ref_type and an app field_id as the ref_id your hook will only be triggered if the changes happen to that particular field.
然后,只有在修改特定字段时才会触发您的webhook,但我仍然建议您使用getItem
和getRevisions
路径。