Ошибка ввода Python в моем коде,

#python #facebook #python-2.7

#python #Facebook #python-2.7

Вопрос:

Я получаю эту ошибку при запуске программы, приведенной ниже. Я запускаю этот код на CentOS. Я не знаю, в чем проблема!

Я застрял с этой ошибкой: TypeError: put_photo() takes at most 3 arguments (4 given)

 #!/usr/bin/python:
# -*- coding: utf-8 -*-
from sys import argv
#import tweepy
import facebook

def main():
  cfg = {
    "page_id"      : "XXXX",
    "access_token" : "XXXX"
    }
  api = get_api(cfg)
  msg = "Hello, world!"
  status = api.put_wall_post(msg)

def get_api(cfg):
  graph = facebook.graphapi(cfg['access_token'])
  resp = graph.get_object('me/accounts')
  page_access_token = None
  for page in resp['data']:
    if page['id'] == cfg['page_id']:
      page_access_token = page['access_token']
  graph = facebook.GraphAPI(page_access_token)
  '''
  caption = "இன்ரைய நாள் காட்டி  #tamilcalender (©belongs to watermarked party)"
  albumid = ''
  with open(image.jpg,"rb") as image:
          posted_image_id = graph.put_photo(image, caption, albumid) '''
  return graph
if __name__ == "__main__":
  main()
  

Комментарии:

1. graph.put_photo(image, caption, albumid) имеет 4 аргумента. Это не похоже на это, но это потому, что первый скрыт, ( self ). Вы передаете слишком много вещей в метод.

2. Вы передаете четыре аргумента в этом вызове put_photo . Объект, к которому прикреплен метод ( graph ), автоматически передается в качестве первого аргумента, традиционно вызываемого self . Затем вы вводите еще три самостоятельно, в общей сложности четыре. Посмотрите документацию или help() для этого метода, чтобы выяснить, как его вызвать.

Ответ №1:

put_photo API принимает только два аргумента.

  • image — Файловый объект, представляющий загружаемое изображение.
  • album_path — Путь, представляющий, куда должно быть загружено изображение. По умолчанию используется /me / photos, который создает / использует пользовательский альбом для каждого приложения Facebook.

Пожалуйста, проверьте эту ссылку для получения дополнительной информации.

Вы передаете три aruguments — image, caption, albumid .

Наряду с этими тремя, как объяснено в приведенных выше комментариях @kindall и @BrandonIbbotson, передается один обязательный аргумент, который связан с self .

Просто проверьте приведенную выше ссылку на примеры и просто передайте два допустимых аргумента.