NextJS 웹사이트에 Instagram 사진을 추가하는 방법
이 게시물에서는 NextJS 웹앱에서 마지막 Instagram 게시물을 표시하는 방법에 대한 예를 보여드리겠습니다.
Next.JS 프로젝트 시작
코드를 시작하겠습니다. 먼저 NextJS 프로젝트를 초기화하겠습니다. 모든 것을 자동으로 설정하는
create-next-app
사용. 터미널을 열고 다음을 실행하십시오.npx create-next-app
# or
yarn create next-app
설치가 완료되면 개발 모드에서 앱을 실행합니다.
cd
폴더에 넣고 다음을 실행하기만 하면 됩니다.yarn dev
그러면
http://localhost:3000
에서 개발 서버가 시작되고 브라우저가 열립니다.Instagram 웹 API 패키지 추가
Instagram Post를 가져오기 위해 npm 패키지
instagram-web-api
를 사용합니다. 패키지를 설치해야 합니다.npm install instagram-web-api --save
# or
yarn add instagram-web-api
홈페이지 업데이트
기본적으로 Next.js는 모든 페이지를 사전 렌더링합니다. 즉, Next.js는 클라이언트 측 JavaScript에서 모든 작업을 수행하는 대신 미리 각 페이지에 대한 HTML을 생성합니다.
파일
pages/index.js
을 열고 모든 코드를 다음으로 바꿉니다.import Head from 'next/head';
import styles from '../styles/Home.module.css';
export default function Home() {
return (
<div className={styles.container}>
<Head>
<title>Instagram Posts</title>
<link rel="icon" href="/favicon.ico" />
</Head>
<h1>Instagram Posts</h1>
</div>
);
}
이제 페이지는 다음과 같아야 합니다.
Instagram 게시물 가져오기 및 렌더링
더 나은 성능과 SEO를 얻기 위해 정적 생성 페이지를 사용할 것입니다. HTML은 빌드 시 생성되며 각 요청에서 재사용됩니다.
빌드 시 데이터를 가져오려면
getStaticProps
에서 함수pages/index.js
를 내보내야 합니다. import Head from 'next/head';
import styles from '../styles/Home.module.css';
+import Instagram from 'instagram-web-api';
-export default function Home() {
+export default function Home({ posts }) {
return (
<div className={styles.container}>
<Head>
@@ -10,6 +11,31 @@ export default function Home() {
</Head>
<h1>Instagram Posts</h1>
+ <ul className={styles.list}>
+ {posts.map(({ node }, i) => {
+ return (
+ <li key={i}>
+ <img src={node.display_resources[0].src} />
+ <p>{node.edge_media_to_caption.edges[0]?.node.text}</p>
+ </li>
+ );
+ })}
+ </ul>
</div>
);
}
+
+export async function getStaticProps(context) {
+ const client = new Instagram({ username: 'INSTAGRAM_USERNAME', password: 'INSTAGRAM_PASSWORD' });
+ await client.login();
+
+ const response = await client.getPhotosByUsername({
+ username: 'INSTAGRAM_USERNAME',
+ });
+
+ return {
+ props: {
+ posts: response.user.edge_owner_to_timeline_media.edges,
+ }, // will be passed to the page component as props
+ };
+}
Instagram에서 게시물을 가져오려면 3단계가 필요합니다.
게시물을 소품으로 반환하기만 하면
Home
React 구성 요소에서 게시물을 수신하고 렌더링할 수 있습니다.스타일 추가
styles/Home.module.css
및 다음 코드를 편집합니다..container {
min-height: 100vh;
padding: 0 0.5rem;
display: flex;
flex-direction: column;
align-items: center;
padding: 0 1rem;
}
.list {
list-style: none;
margin: 0;
padding: 0;
}
.list li {
margin-bottom: 4rem;
border-bottom: solid 1px lightgray;
padding-bottom: 2.5rem;
}
.list img {
max-width: 100%;
}
결과
추가 정보:
질문?
이 게시물이 마음에 들면 공유하여 저를 도와주시고 질문이 있으시면 Twitter(으)로 저에게 편지를 보내주세요.
Reference
이 문제에 관하여(NextJS 웹사이트에 Instagram 사진을 추가하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fmontes/how-to-add-instagram-photos-to-nextjs-website-2n76텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)