我的代码中的Python TypeError,

时间:2016-10-21 19:07:11

标签: 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 个答案:

答案 0 :(得分:1)

put_photo API只有两个参数。

  • image - 表示要上传的图像的文件对象。
  • album_path - 表示图片上传位置的路径。默认为/ me / photos,为每个Facebook应用程序创建/使用自定义相册。

Please check this link for more info.

你正在通过三个结果 - image, caption, albumid

除了这三个,如上面 @kindall @BrandonIbbotson 的评论中所解释的那样,传递了一个与self相关的强制参数。

只需查看上面的链接以获取示例,然后传递两个有效的参数。