Как должны обрабатываться поля профиля LinkedIn People в PHP?

Я основываю свой код на примере 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, поэтому я думаю, что я должен делать что-то еще неправильно.

Есть идеи?

Спасибо,

Дуг

2

Решение

Используя print_r($user); вы должны увидеть, к чему public-profile-url и другие сопоставлены.

0

Другие решения

Ваш метод будет работать, но чтобы быть уверенным … сначала назначьте поле переменной, а затем используйте переменную для ссылки.

<?php
$field = 'public-profile-url';

echo $user->$field; // works

echo $user->{'public-profile-url'}; // works also
?>

Если они возвращаются как NULL, то они должны быть NULL

4

LinkedIn всегда возвращает поля верблюжьих букв с первой строчной буквой, также известной как нотация camelBack. Итак, вы будете иметь publicProfileUrlи т. д. Помните вместо этого, когда они вам нужны, используйте для каждого поля обозначение first-name,last-name: составные слова, разделенные запятой. Не используйте пробел до или после запятой.

1
По вопросам рекламы [email protected]