#ios #swift #podio
#iOS #swift #podio
Вопрос:
Я пытаюсь создать новый элемент в приложении podio в приложении iOS с. Следующие строки кода соответствуют документации в podio, но у меня ошибка 403 с темой в качестве сообщения об ошибке. Я предположил, что мне нужно аутентифицировать сеанс как приложение, поскольку я думаю, что оно будет использовать идентификатор приложения для создания PKTItem в приложении, используемом для входа.
let item = PKTItem(forAppWithID: lastItem 1)
item?.setValue(1, forField: "service")
item?.setValue(testPet, forField: "pet")
item?.save().onComplete({(response, error) in
if (error != nil){
print("error: (error)")
}
else{
print("response")
}
})
Я предполагал, что элемент будет создан в приложении, которое использовалось для подписи с элементом, имеющим идентификатор lastItem 1
, я попытался проверить, верны ли идентификаторы объекта
//this is supposed to be lastItem 1
print("PKTItem ID: (item?.appItemID)")
//this is supposed to be the app ID where it should create the new item
print("PKTItem AppID: (item?.appID)")
PKTItem ID: Optional(0)
PKTItem AppID: Optional(1)
Я не понимаю, что я делал неправильно. Пожалуйста, помогите мне.
Комментарии:
1. Я понятия не имею, что такое podio, но для меня инициализация
PKTItem(forAppWithID:)
должна вызываться с идентификатором приложения, по крайней мере, так я читаюforAppWithID
2. согласно документации, это должен быть идентификатор элемента, поскольку они используют указанный там идентификатор для обновления элемента, если идентификатор существует podio.github.io/podio-objc/items
Ответ №1:
Похоже, вы используете неправильный набор учетных данных для просмотра элемента приложения, с которым пытаетесь работать. Как вы авторизовались? У вас есть правильный идентификатор приложения и комбинация токенов для этого скрипта?
Обычно вы увидите [PodioKit authenticateAutomaticallyAsAppWithID:123456 token:@"my-app-token"];
, и это позволяет вам взаимодействовать с чем угодно в приложении 123456, но похоже, что вы пытаетесь взаимодействовать с данными в 2 приложениях на основе сообщения об ошибке. Если это реализация небольшого масштаба (или для целей тестирования), вы можете использовать вместо этого метод аутентификации как пользователя. Вот документация, которая у них есть по аутентификации для библиотеки Objective C.
PKTAsyncTask *authTask = [PodioKit authenticateAsUserWithEmail:@"myname@mydomain.com" password:@"p4$$w0rD"];
[authTask onComplete:^(PKTResponse *response, NSError *error) {
if (!error) {
// Successfully authenticated
} else {
// Failed to authenticate, double check your credentials
}
}];
Комментарии:
1. я на самом деле использую
authenticateAsApp
, когда я получаю ошибку (403), когда я использовалauthenticateAsUser
, я получаю 404.2. что касается ошибок в моем приложении, то это единственная ошибка, поскольку я могу безупречно извлекать элементы из выбранного приложения
3. Когда вы проходите аутентификацию как пользователь, где происходит 404? Это связано с аутентификацией или это происходит при вызове Get Item? Если оно находится в вызове Get Item, можете ли вы попробовать передать ему определенный идентификатор элемента вместо переменной, чтобы подтвердить, что это проблема 404, а не проблема с пустой переменной?
4. 404 был, когда я пытался создать PKTItem. я уже нашел решение в их документации, отличной от objective-c. согласно их документации: «Обновление элемента работает очень похоже на создание, но вместо предоставления идентификатора приложения, как мы делаем при создании элементов, вы должны указать идентификатор элемента при обновлении».