반응형

애플 에 대해 알아보자!




애플 뭐하는 회사일까?

애플은 다양한 전자제품과 서비스를 개발, 생산 및 판매하는 글로벌 기업입니다.

복지를 알려줘 !

1. 건강 관리: 애플은 건강 보험 혜택과 건강 검진 프로그램을 제공하여 직원들의 건강을 지원합니다. 또한, 건강한 식사 옵션과 피트니스 시설을 제공하여 건강한 생활을 할 수 있도록 돕습니다. 2. 워크-라이프 밸런스: 애플은 유연한 근무 시간과 재택근무 옵션을 제공하여 직원들이 일과 개인 생활을 조화롭게 이어갈 수 있도록 지원합니다. 3. 자기 계발: 애플은 교육 지원 프로그램을 운영하여 직원들의 자기 계발을 지원합니다. 내부 및 외부 교육, 워크샵, 세미나 등을 통해 직원들이 지식과 기술을 개발할 수 있습니다. 4. 부모와 가족 지원: 애플은 출산 전후 휴가, 육아 휴직, 양육 지원 등 부모와 가족을 위한 다양한 프로그램을 운영하여 직원들의 가족 생활을 지원합니다. 5. 급여 및 혜택: 애플은 경쟁력 있는 급여와 혜택을 제공합니다. 이는 퇴직 연금, 주식 보상, 복지 혜택 등을 포함합니다.

반응형
반응형

구글 에 대해 알아보자!




구글 뭐하는 회사일까?

구글은 혁신적인 기술과 서비스를 통해 사용자에게 가치를 제공하고, 정보의 접근성과 편의성을 높이는 데 주력하고 있습니다.

복지를 알려줘 !

1. 무료 식사: 구글 캠퍼스에는 무료 브런치, 점심, 저녁 식사 등 다양한 음식을 무료로 제공합니다. 2. 건강관리: 구글은 건강 검진, 스포츠 팀, 건강한 식습관 교육, 코칭 등 다양한 건강관리 프로그램을 제공합니다. 3. 유연한 근무시간: 구글은 직원들에게 유연한 근무시간을 제공하여 워크-라이프 밸런스를 유지할 수 있도록 돕고 있습니다. 4. 부모와 가족 지원: 구글은 출산 전후 휴가, 육아 휴직, 양육 지원 등 부모와 가족을 위한 다양한 프로그램을 운영합니다. 5. 교육 지원: 구글은 인터넷 강의, 교육 지원, 외부 교육 등을 제공하여 직원들의 자기 계발을 지원합니다. 위와 같은 복지 제도를 통해, 구글은 직원들의 건강과 복지를 중요시하며, 직원들이 안정적으로 일하며 성장할 수 있는 환경을 제공합니다.

반응형
반응형

CJ 올리브영 에 대해 알아보자!

CJ 올리브영 뭐하는 회사일까?

올리브영은 건강과 아름다움을 전문으로 하는 제품들을 판매하는 뷰티파트너입니다. 화장품, 스킨케어, 헤어케어, 바디케어 등 많은 제품군을 보유하고 있으며, 고객들에게 최고의 품질과 서비스를 제공하기 위해 노력하고 있습니다. 또한, 올리브영은 다양한 복지 제도와 이벤트를 통해 고객들과 직원들의 삶의 질 향상에 기여하고 있습니다.

복지를 알려줘 !

1. 건강검진 지원: 정기적으로 건강검진을 받을 수 있도록 지원합니다. 2. 자녀 학자금 지원: 직원의 자녀가 대학에 입학하면 등록금 일부를 지원합니다. 3. 건강보험 자동 가입: 직원들은 건강보험에 자동 가입되어 있습니다. 4. 경조금 및 휴가비 지원: 결혼, 출산, 부조 등의 경조사 및 휴가 시 추가 지원금을 제공합니다. 5. 연차 휴가: 직원들은 근속 연수에 따라 연차 휴가 일수를 지급받습니다. 6. 승진, 인사 이적 등의 직원 발전을 위한 제도: 직원들의 승진, 인사 이적 등의 발전을 위한 교육 및 프로그램을 제공합니다. 7. 퇴직금: 정년 퇴직 시 퇴직금 지급을 받을 수 있습니다. 에 대해 알아보자!

반응형
반응형

AttributeError: module 'attr' has no attribute 's'

메세지 테스트하는데.. 위와 같은 애러 발생..

윈도우 서버에서는 바로 되었는데... 리눅스에서는 이런 문제가 발생하였다.

cifs 물린 py 코드로 윈도우에서 돌아가게끔 짱구를 굴렸으나  문제해결의 쾌감을 맛보기위해 3시간 삽질...

pip3 install -U attr
pip3 install -U attrs
pip3 install -U kb-manager

import asyncio
import telegram


my_token = '토큰!'
chat_id = '쳇아이디~'


bot = telegram.Bot(token=my_token)
async def send_message(text):
    await bot.sendMessage(chat_id=chat_id, text=text)

asyncio.run(send_message('드디어.. ㅠ'))
 
다음에는 텔레그램 api 따는 법을 올려볼게요~!
반응형
반응형

 

import requests
import pandas as pd
from tabulate import tabulate


appid = "{앱 아이디}"
access_token = "{엑세스 토큰}"
callback_url = "https://blog.soowim.co.kr"


def list_of_Category():

    params = {
        'access_token': access_token,
        'output': 'json', # json, xml 두 가지 형식 지원
        'blogName': blogName   # ().tistory.com 또는 블로그 주소 전체
    }
   
    res = requests.get(url, params=params)

    if res.status_code == 200:
        res_json = res.json()
        data = res_json['tistory']['item']['categories']
       
        # columns = ['id', 'name', 'parent', 'label', 'entries', 'entriesInLogin']
        columns = ['id', 'label']
        df = pd.DataFrame(data, columns=columns)

        print(tabulate(df, headers='keys', tablefmt='grid'))

        df.to_csv('./result.csv', sep=',', na_rep='NaN', encoding='utf-8-sig')


if __name__ == '__main__':

    list_of_Category()
 

 

아주 보기 편하게 나온다... 블로그 글 작성 시, 카테고리 분류를 해보자!

반응형
반응형

https://soowim.tistory.com/98

 

아래와 같이, 스크립트로 글을 작성하려면 엑세스토큰을 먼저 받으셔야해요! 위 게시물 확인하시고 ! 토큰 받은 다음에 아래와 같이 진행하시면 됩니다.

API TEST로 글을 작성하려한다.

코드 실행~

 

엑세스~ 200 !리턴 정상적으로 게시 되었고, https://blog.soowim.co.kr/99 게시 된 링크로 확인 고고

 

 

잘 작성이 되었습니다.

 코드는 아래와 같아요~~복사해서 맘껏 쓰세요!

import requests


token = "{본인 엑세스 토큰!}"

blogname = "{본인 blogurl}"

def write_post(title="제목", content="컨텐츠 내용"):
    """write tistory post"""
    data = f'{tistory_write_url}{token}&blogName={blogname}&title={title}&content={content}&output=json'
    return  requests.post(data).json()
   
if __name__ == "__main__":
    post_result = write_post()
    print(post_result)

참 쉽쥬잉~

반응형
반응형
API Content TEST
반응형
반응형

 

 

링크에 접속하면 애플리케이션 기능 퍼미션 활성화 허가를 해줘야한다.

 

허가하기를 누르면 본인의 blog url로 리다이렉션 될 것 이다.

 

\

url 주소를 보면 code =블라블라 

코드를 확인 했으면 아래 코드를 작성한다.

import requests

from tistory import Tistory, Auto

# API 키와 리디렉션 URI 설정
client_id = '********************************************' # 발급받은 App key
client_secret = '****************************************' # 발급받은 Secret key
redirect_uri = "https://blog.soowim.co.kr" # API 신청시에 기입한 리디렉션 URI


code = "위에서 받은 블라블라 입력."

to_url = f'https://www.tistory.com/oauth/access_token?client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&code={code}&grant_type=authorization_code'

print (to_url)

위 코드를 실행하여 나온 값을  웹페이지에 접속하여 F12 개발자 도구를 켜 놓고 웹에 접속하면

 

 

 

엑세스 토큰을 받았다!!!!

이제 글을 써보자!

 

 

 

 

반응형
반응형

어제 받은 토큰으로 메세지 발송 시도~~~ 하였으나

 

코드는 돌았는데...메세지 무반응....

알아보니

 

"로그인 시 카카오계정 세션의 인증 시간은 기본 24시간이며, 최초 인증 후 세션 시간은 변경되지 않습니다. 사용자가 로그인 유지를 선택한 경우에는 인증 시간이 1입니다. "

뚜둥..쓰 

 

우선 토큰 부터 다시 파해치자.

# https://kauth.kakao.com/oauth/authorize?client_id={api값}&redirect_uri={설정하신 리다이렉션 url}&response_type=code 

위 url로 접속하면  code 값을 반환해줍니다.

 

====================코드===============================

import requests
import json

url = "https://kauth.kakao.com/oauth/token"

data = {
"grant_type" : "authorization_code",
"client_id" : "{apt값}",
"redirect_uri" : '설정하신 리다이렉션 url',
"code" : "반환 된 code 값"
}

response = requests.post(url, data=data)
tokens = response.json()


if "access_token" in tokens:
    with open("kakao_token.json", "w") as fp:
        json.dump(tokens, fp)
        print("Tokens saved successfully")
else:
    print(tokens)

====================코드===============================

실행해주세요.

토큰을 저장 하였습니다 석세스~~

 

생성 된 토큰에 유효기간이 있음

딕셔너리 형태 반환 값 중 , "expires_in": 12333, 숫자 초단위  잔여 유효시간을 전달 합니다!-

 

아래 코드로 토큰을 리프레시하실 수 있습니다.

====================코드===============================

import requests
import json

rest_api_key = 'aa462514c84043fba37df1f82aaf6f4b'
redirect_uri = 'https://localhost:3000'
url_token = 'https://kauth.kakao.com/oauth/token'
authorize_code = 'CK5cVxsxO6I4zBsMaMgo1AWl7wf9vMGhzsACPuD7phtO_aQx8jjk_91O5O-PbD7RnFFdvgo9c00AAAGI4mjg8A'

try:
    with open("kakao_token.json","r") as fp: # 기존에 저장된 token 파일이 있는지 찾아봅니다.
        tokens = json.load(fp)
        if "error_code" in tokens:
            tokens={}
except Exception as e:
    print(e)
    tokens={}

if tokens == {}:
    # 신규 발급이 필요한 경우
    param = {
        'grant_type':'authorization_code',
        'client_id':rest_api_key,
        'redirect_uri':redirect_uri,
        'code': authorize_code, # 한번 발급되면 authorize_code는 무효화됩니다. 
    }

    response = requests.post('https://kauth.kakao.com/oauth/token', data=param)
    tokens = response.json() # token 발급 api로 발급된 정보들을 kakao_token.json 파일에 저장합니다.
    if "error_code" in tokens:
        print(tokens["error_code"])
    else:
        with open("kakao_token.json","w") as fp:
            json.dump(tokens, fp)
            print("파일로 토큰 정보 저장!")
else:
# 기존 발급된 정보가 있을 경우
    headers = {
        "Authorization": "Bearer " + tokens["access_token"]
    }
    # access_token_info의 결과가 계속 -401로 돌아옵니다. 추후 수정할 예정입니다.
    response = requests.get('https://kapi.kakao.com/v1/user/access_token_info', headers=headers)
    result = response.json()
    if "error_code" in result:
     # -401은 유효하지 않은 값 혹은 유효기간이 지난 토큰일 경우 발생하는 에러입니다.
        # api로 token 갱신을 요청합니다.
        param = {
            "grant_type":"refresh_token",
            "client_id" : rest_api_key,
            "refresh_token" : tokens["refresh_token"]
        }
        response = requests.post('https://kauth.kakao.com/oauth/token', data=param)
        new_token = response.json()
        
        # 새로 발급된 token을 다시 저장합니다.
        if "error_code" in new_token:
            print("ERROR :", new_token["error_code"])
        else:
            with open("kakao_token.json", "w") as fp:
                json.dump(new_token, fp)
                print("파일로 새로운 토큰 정보 저장!")
    else:
        print("정상 토큰")

====================코드===============================

반응형
반응형

A. www.developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

B. (A) 웹으로 이동하여, 로그인 후 애플리케이션 생성

 "내 애플리케이션" 이동

"애플리케이션 추가하기"

"앱이름" "사업자명" 입력, 사업자 없으면 버디버디 아이디 입력하시면 됩니다. (조크) ... 아무거나 쓰시면 됩니다 !

"앱 키" 중 REST API 키를 통해 연동을 할 예정입니다.

 

 

"카카오 로그인"  "상태 on" 으로 바꾸고,  "Redirect URI"  ->  "https://localhost:3000" 입력 -> 토큰 값을 리다이렉트로 받아와야 합니다.

https://kauth.kakao.com/oauth/authorize?client_id=자신의 REST 키값&redirect_uri=https://example.com/oauth&response_type=code

파란새 부분으로 줄을 쳐 놓은 code= 토큰값 으로 토큰을 json 형태로 저장하여 r,w 인증에 사용합니다.

 

============================================================================================

import requests
import json

url = 'https://kauth.kakao.com/oauth/token'
client_id = '자신의 REST 키값'
redirect_uri = 'https://example.com/oauth'
code = '자신의 CODE 값'

data = {
    'grant_type':'authorization_code',
    'client_id':client_id,
    'redirect_uri':redirect_uri,
    'code': code,
    }

response = requests.post(url, data=data)
tokens = response.json()

#발행된 토큰 저장
with open("token.json","w") as kakao:
    json.dump(tokens, kakao)

 

============================================================================================

import requests
import json

#발행한 토큰 불러오기
with open("token.json","r") as kakao:
    tokens = json.load(kakao)

url="https://kapi.kakao.com/v2/api/talk/memo/default/send"

headers={
    "Authorization" : "Bearer " + tokens["access_token"]
}

data = {
       'object_type': 'text',
       'text': '퇴근 완료',
       'link': {
           'web_url': 'https://developers.kakao.com',
           'mobile_web_url': 'https://developers.kakao.com'
       },
       'button_title': '키워드'
   }
   
data = {'template_object': json.dumps(data)}
response = requests.post(url, headers=headers, data=data)
response.status_code

 

============================================================================================

 

 

 

*api 발급 순서 정리

현재 카카오모먼트API 사용하기위해
1.https://kauth.kakao.com/oauth/authorize?client_id= 3 요청해서 인가코드 받고

2.URL → https://kauth.kakao.com/oauth/token 4 파라미터 1.client_id, 2.code, 3.redirect_uri, 4.grantType=“authorization_code”
요청으로 받은 refresh토큰으로

3.URL → https://kauth.kakao.com/oauth/token 4 파라미터 1.client_id, 2.refresh_token 3.grant_type=refresh_token
요청으로 ACCESSTOKEN을 받아서 사용

 

근데...토큰 유효 시간이 너무 짧다..

해결방법은~ 아래 링크!

https://blog.soowim.co.kr/95

 

 

반응형

+ Recent posts