Я основываю свой код на примере PHP-кода, который LinkedIn делает доступным на https://developer.linkedin.com/documents/code-samples.
Различия между их кодом и моим немногочисленны.
Пример кода просто запрашивает два поля профиля:
$user = fetch('GET', '/v1/people/~:(firstName,lastName)');
Я хотел намного больше, поэтому я запросил все эти поля профиля, как определено в https://developer.linkedin.com/documents/profile-fields:
$user = fetch('GET', '/v1/people/~:(firstName,lastName,headline,industry,specialties,summary,positions,public-profile-url,email-address,interests,publications,languages,skills,certifications,educations,num-recommenders,date-of-birth,honors-awards)');
Запрос выполнен успешно, поля профиля возвращены, и я могу напечатать большинство из них для отображения. Но поля, которые переносятся, такие как public-profile-url
похоже, не возвращает полезные данные. Я должен делать что-то не так, потому что это не может быть совпадением все дефисированные поля профиля пусты.
После успешного возврата я попытался использовать операторы print, чтобы показать результаты для каждого поля:
print "<br />headline: $user->headline ";
print "<br />industry: $user->industry ";
print "<br /><br />public-profile-url: " . $user->{'public-profile-url'};
print "<br /><br />email-address: " . $user->{'email-address'};
и т.п.
Это работает для всех полей, которые были простыми строками. Для некоторых мне нужно было использовать print_r, потому что они были объектами.
Но я не получаю никаких данных для дефисных полей.
Если я попробую print_r:
print_r($user->{'public-profile-url'});
результат пуст.
Если я попробую var_dump:
var_dump($user->{'public-profile-url'});
результат NULL.
Это то же самое для все поля профиля переноса, которые я пробовал:
общественные профильный URL
адрес электронной почты
NUM-рекомендателей
Дата рождения
Честь и Почет
Кажется слишком большим совпадением, что все поля профиля с дефисами будут равны NULL, поэтому я думаю, что я должен делать что-то еще неправильно.
Есть идеи?
Спасибо,
Дуг
Используя print_r($user);
вы должны увидеть, к чему public-profile-url
и другие сопоставлены.
Ваш метод будет работать, но чтобы быть уверенным … сначала назначьте поле переменной, а затем используйте переменную для ссылки.
<?php
$field = 'public-profile-url';
echo $user->$field; // works
echo $user->{'public-profile-url'}; // works also
?>
Если они возвращаются как NULL, то они должны быть NULL
LinkedIn всегда возвращает поля верблюжьих букв с первой строчной буквой, также известной как нотация camelBack. Итак, вы будете иметь publicProfileUrl
и т. д. Помните вместо этого, когда они вам нужны, используйте для каждого поля обозначение first-name,last-name
: составные слова, разделенные запятой. Не используйте пробел до или после запятой.