Jak powiązać autorów artykułów z oznaczeniami w mediach społecznościowych za pomocą Airtable

Smart Message może podpisać post nazwami użytkowników, których autorzy artykułu używają w sieciach społecznościowych, na przykład By @camille.example.com and Noah Petit. Nonli odczytuje nazwiska autorów z artykułu, a następnie wyszukuje każde z nich w tabeli, którą prowadzisz: w Airtable lub bezpośrednio w szablonie.

Na tej stronie użyto fikcyjnych nazwisk i nazw użytkowników. Każdy z poniższych fragmentów kodu został wyrenderowany silnikiem szablonów Nonli w dniu 2026-10-26 na danych testowych i bez publikowania czegokolwiek.

1. Co to robi, a czego nie robi#

  • Przypisuje nazwy użytkowników znanym autorom artykułu. Nie wyszukuje osób ani firm cytowanych w tekście artykułu i nie zgaduje konta na podstawie nazwiska.
  • Szablon zapisuje tekst. To, czy ten tekst stanie się prawdziwym oznaczeniem, zależy od sieci (zob. poniżej „Które sieci zamieniają tekst w oznaczenie”).
  • Nie umożliwia oznaczania osobistych profili na LinkedInie. Zobacz Czy mogę oznaczać osoby lub firmy w postach na LinkedInie?

2. Wymagania wstępne#

  1. Nazwiska autorów w artykułach. Nonli odczytuje autorów ze strony artykułu, z jej danych strukturalnych (Schema.org author w JSON-LD lub mikrodane itemprop="author" z name). Gdy strona ich nie zawiera, Nonli używa jako wartości zastępczej metatagu article:author, który niektóre serwisy wypełniają adresem URL profilu zamiast nazwiska: wyszukiwanie używa wtedy tego adresu URL. W szablonie są one dostępne jako authors, czyli lista nazwisk. Najpierw sprawdź rzeczywiste wartości na prawdziwym artykule: zobacz authors w artykule Jakie zmienne Twig są dostępne w Nonli?. Nie używaj post.author: to pojedynczy tekst, który może opisywać osobę, która utworzyła post w Nonli, a nie autora artykułu.
  2. Nazwy użytkowników Twoich autorów w każdej sieci, w której publikujesz.
  3. W przypadku metody z Airtable token Airtable zapisany w Nonli oraz identyfikator Twojej bazy. Postępuj zgodnie z artykułem Jak utworzyć tajny klucz API Airtable dla Nonli. Nigdy nie wysyłaj swojego tokenu zespołowi wsparcia.

3. Metoda 1: tabela w Airtable#

3.1. Utwórz tabelę#

Utwórz tabelę o nazwie Authors z jednym wierszem na autora:

NameBluesky
Camille Martincamille.example.com
Léa Duboislea.example.com
Sam Lefèvre
  • Name to klucz wyszukiwania. Wpisz nazwisko dokładnie tak, jak występuje w authors, z tymi samymi znakami diakrytycznymi, spacjami i wielkimi literami. Nonli nie poprawia ani nie normalizuje nazwisk, więc wariant taki jak Lea Dubois zamiast Léa Dubois nie daje pewnego dopasowania. Jeśli autor podpisuje się na kilka sposobów, dodaj jeden wiersz dla każdej pisowni.
  • Każde nazwisko musi być unikalne. Jeśli dwa wiersze mają to samo nazwisko, Nonli używa pierwszego zwróconego przez Airtable, a drugi wiersz jest pomijany.
  • Dodaj jedną kolumnę na sieć (na przykład Bluesky, Mastodon). Pusta komórka oznacza „brak nazwy użytkownika w tej sieci”.
  • Zapisuj nazwy użytkowników bez @: szablon dodaje ten znak.
  • Dla każdej kolumny sieci użyj pola typu single line text (tekst jednowierszowy). Pole typu linked record, lookup lub multiple select zwraca listę zamiast tekstu, a szablon zgłasza błąd zamiast użyć nazwiska jako wartości zastępczej.

3.2. Napisz szablon#

twig
1{%- set signature = [] -%}
2{%- for authorName in authors -%}
3 {%- set handle = airtable('appYourBaseId', 'Authors', 'Name', authorName, 'Bluesky') -%}
4 {%- set signature = signature|merge([handle ? '@' ~ handle : authorName]) -%}
5{%- endfor -%}
6{{ title }}
7{%- if signature is not empty %}
8
9By {{ signature|join(', ', ' and ') }}
10{%- endif %}

Zastąp appYourBaseId identyfikatorem swojej bazy, a Authors, Name i Bluesky nazwami swojej tabeli i kolumn. airtable(base, table, searchField, searchValue, fieldToReturn) zwraca wartość fieldToReturn z pierwszego wiersza, w którym searchField jest równe searchValue, albo nic, gdy takiego wiersza nie ma lub komórka jest pusta.

Formularz szablonu Smart message w Nonli z etykietą Author signature (Bluesky) i powyższym szablonem w polu Template

Szablon wklejony do nowego szablonu Smart message przed zapisaniem. appYourBaseId to symbol zastępczy.

3.3. Oczekiwany wynik#

Dla tytułu Budget 2027: what changes i powyższej tabeli:

authorsWynik
(brak)Budget 2027: what changes
Camille MartinBudget 2027: what changes
By @camille.example.com
Noah Petit (brak w tabeli)Budget 2027: what changes
By Noah Petit
Léa Dubois, Noah Petit, Camille MartinBudget 2027: what changes
By @lea.example.com, Noah Petit and @camille.example.com
Sam Lefèvre (pusta komórka)Budget 2027: what changes
By Sam Lefèvre

Ten szablon stosuje następujące reguły:

  • Brak autora, brak podpisu. Wiersz By jest dodawany tylko wtedy, gdy jest co najmniej jeden autor, więc post nigdy nie kończy się samotnym By.
  • Nazwisko jako wartość zastępcza. Autor bez nazwy użytkownika zachowuje pełne imię i nazwisko, więc każdy autor jest wymieniony.
  • Kolejność jest zachowana. Autorzy pojawiają się w kolejności z artykułu, oddzieleni przecinkami, z and przed ostatnim.

3.4. Wariant: pokaż tylko dopasowanych autorów#

Jeśli wolisz wymieniać tylko autorów, którzy mają nazwę użytkownika, pomiń pozostałych:

twig
1{%- set handles = [] -%}
2{%- for authorName in authors -%}
3 {%- set handle = airtable('appYourBaseId', 'Authors', 'Name', authorName, 'Bluesky') -%}
4 {%- if handle -%}
5 {%- set handles = handles|merge(['@' ~ handle]) -%}
6 {%- endif -%}
7{%- endfor -%}
8{{ title }}
9{%- if handles is not empty %}
10
11By {{ handles|join(', ', ' and ') }}
12{%- endif %}

Dla Léa Dubois, Noah Petit, Camille Martin wynikiem jest By @lea.example.com and @camille.example.com. Gdy żaden autor nie jest dopasowany, nie ma wiersza By. Wybierz ten wariant świadomie: pomija on autorów bez nazwy użytkownika.

3.5. Wariant: podpis tylko wtedy, gdy dopasowano wszystkich autorów#

Niektóre zespoły wolą zasadę „wszystko albo nic”: podpis jest dodawany tylko wtedy, gdy każdy autor ma nazwę użytkownika, a w przeciwnym razie całkowicie pomijany. Zachowaj pętlę z poprzedniego wariantu i zmień tylko warunek:

twig
1{%- if handles is not empty and handles|length == authors|length %}

Dla Léa Dubois, Camille Martin wynikiem jest By @lea.example.com and @camille.example.com. Dla Léa Dubois, Noah Petit, Camille Martin nie ma w ogóle wiersza By, ponieważ Noah Petit nie ma nazwy użytkownika.

ZasadaNiedopasowany autorNajlepsza, gdy
Nazwisko jako wartość zastępcza (szablon główny)Wymieniony z nazwiskaKażdy autor musi zawsze zostać wymieniony
Pokaż tylko dopasowanych autorówPominiętyLiczą się tylko nazwy użytkowników, częściowe wymienienie autorów jest dopuszczalne
Podpis tylko wtedy, gdy dopasowano wszystkich autorówPominięty cały podpisCzęściowy podpis byłby mylący

Żadna z tych zasad nie jest domyślnym ustawieniem Nonli: decyduje szablon, więc wybierz zasadę, która odpowiada Twoim regułom redakcyjnym.

4. Metoda 2: tabela w szablonie#

Przy niewielkiej liczbie autorów możesz przechowywać tabelę w samym Smart Message, bez Airtable. Dane wejściowe (authors) i reguła wartości zastępczej są takie same jak w metodzie 1:

twig
1{%- set blueskyHandles = {
2 'Camille Martin': 'camille.example.com',
3 'Léa Dubois': 'lea.example.com',
4 'Alex Moreau': 'alex.example.com',
5} -%}
6{%- set signature = [] -%}
7{%- for authorName in authors -%}
8 {%- set handle = blueskyHandles[authorName] ?? null -%}
9 {%- set signature = signature|merge([handle ? '@' ~ handle : authorName]) -%}
10{%- endfor -%}
11{{ title }}
12{%- if signature is not empty %}
13
14By {{ signature|join(', ', ' and ') }}
15{%- endif %}

Dla tych samych nazwisk daje takie same wyniki jak metoda 1: na przykład Camille Martin, Noah Petit daje By @camille.example.com and Noah Petit. Nazwiska są dopasowywane dokładnie: Lea Dubois (bez znaku diakrytycznego) lub camille martin (małymi literami) nie dają żadnego dopasowania i są wyświetlane tak, jak zostały zapisane.

Ta metoda jest przykładem do dostosowania, a nie konfiguracją skopiowaną od klienta.

4.1. Którą metodę wybrać#

AirtableTabela w szablonie
Gdzie edytujesz przypisaniaW jednej tabeli AirtableW każdym szablonie
Współdzielona przez kilka szablonówTak: jedna zmiana działa wszędzieNie: każdą kopię szablonu trzeba zaktualizować
Wymaga tokenu AirtableTakNie
Najlepsza dlaRedakcji z wieloma autoramiKilku stałych autorów

Żadna z metod nie zmienia tego, jakie oznaczenia akceptuje dana sieć.

5. Przetestuj przed publikacją#

W edytorze szablonów Smart Message przetestuj szablon na reprezentatywnych artykułach przed zapisaniem: artykule bez autora, z jednym autorem z nazwą użytkownika, z jednym bez niej i z kilkoma autorami. Następnie przetestuj od początku do końca post nieprodukcyjny opublikowany przez bota: nazwy użytkowników na Bluesky są zamieniane w oznaczenia tylko w publikacjach botów (zob. poniżej). Zobacz Jak utworzyć Smart Message.

Sprawdź, co faktycznie zawiera wynik:

  • nazwisko (Noah Petit): zwykły tekst;
  • nazwa użytkownika (@camille.example.com): tekst, który niektóre sieci mogą zamienić w oznaczenie;
  • adres URL profilu: link, a nie oznaczenie;
  • klikalne oznaczenie: widoczne tylko w opublikowanym poście i tylko wtedy, gdy sieć je utworzyła.

6. Które sieci zamieniają tekst w oznaczenie#

  • Bluesky: gdy post publikuje bot, Nonli wyszukuje każdą pełną nazwę użytkownika zapisaną w wiadomości, np. @camille.example.com. Gdy konto zostanie znalezione, Nonli publikuje prawdziwe oznaczenie na Bluesky. Gdy nie zostanie znalezione, tekst pozostaje zwykłym tekstem. W poście tworzonym ręcznie wpisane nazwy użytkowników nie są zamieniane: zamiast tego wybierz konto z podpowiedzi oznaczeń w edytorze. Używaj pełnej nazwy użytkownika wraz z domeną (na przykład name.bsky.social) i nie stawiaj bezpośrednio po niej znaków interpunkcyjnych, takich jak kropka: zostałyby odczytane jako część nazwy użytkownika.
  • LinkedIn: nazwa użytkownika lub nazwisko zapisane przez szablon pozostaje zwykłym tekstem. Nonli tworzy oznaczenia na LinkedInie tylko dla stron firmowych wybranych w edytorze posta i nie obsługuje jeszcze oznaczania profili osobistych. Aby oznaczyć osobę, edytuj post na LinkedInie po publikacji, jak wyjaśniono w artykule Czy mogę oznaczać osoby lub firmy w postach na LinkedInie?
  • Inne sieci: ta strona ich nie obejmuje. Zanim zaczniesz polegać na wyniku, sprawdź jeden opublikowany post testowy.

7. Rozwiązywanie problemów#

ProblemPrzyczyna i rozwiązanie
W ogóle brak wiersza ByLista authors jest pusta dla tego artykułu. Sprawdź dane strukturalne autora na stronie artykułu.
Autor pojawia się jako nazwisko zamiast nazwy użytkownikaNazwisko w Airtable jest zapisane inaczej (znak diakrytyczny, wielka litera, drugie imię), komórka dla tej sieci jest pusta lub nazwa kolumny w szablonie jest błędna.
Pojawia się niewłaściwa nazwa użytkownikaDwa wiersze mają to samo nazwisko. Zachowaj jeden wiersz na nazwisko.
Żaden autor nie otrzymuje nazwy użytkownikaSprawdź token Airtable w Nonli, identyfikator bazy oraz nazwy tabeli i kolumn.
Nazwa użytkownika jest opublikowana, ale nie jest klikalnaSieć nie rozpoznała jej jako oznaczenia. Na Bluesky sprawdź pełną nazwę użytkownika i to, czy post opublikował bot. Na LinkedInie tekst z szablonu nigdy nie jest oznaczeniem.

Czy ten artykuł był pomocny?

Umów spersonalizowane demo z naszym zespołem.