我正在从事Google课堂集成项目。我创建了一个Google用户帐户,然后向该帐户添加了一个Google教室,然后为发布/订阅功能设置了Google Cloud Platform项目,以便在对班级名册进行更新时接收通知。
我遵循了本文档中概述的说明:https://developers.google.com/classroom/guides/push-notifications#topic-setup。在我的php代码中,当我尝试注册用于接收推送通知的类时,收到以下错误消息:指定的Cloud Pub / Sub主题不属于您的Developer Console项目。我正在使用包含Google课堂和Google云平台的相同登录凭据获取访问令牌。
我多次检查了名字的准确性,但似乎是正确的。另外,我检查了下拉菜单以确保我在正确的项目中,而且看起来也正确。我发现这篇文章是关于stackoverflow的,但不确定它是罪魁祸首:Pub Sub Topic not associated with Project error。
这是我用来注册一个类以接收通知的代码的示例:
$service = $api->get_service();
$pub_sub = new Google_Service_Classroom_CloudPubsubTopic();
$pub_sub->setTopicName($topic_name);
$roster_change_info = new Google_Service_Classroom_CourseRosterChangesInfo();
$roster_change_info->setCourseId($google_course_id);
$feed = new Google_Service_Classroom_Feed();
$feed->setCourseRosterChangesInfo($roster_change_info);
$feed->setFeedType($feed_type);
$registration = new Google_Service_Classroom_Registration();
$registration->setCloudPubsubTopic($pub_sub);
$registration->setFeed($feed);
$timestamp = Date('Y-m-d\TH:i:s\Z', strtotime("+50 years"));
$registration->setExpiryTime($timestamp);
$service->registrations->create($registration);
调用registrations-> create时似乎会发生此问题。
如果该主题实际上在项目中,并且根据上面列出的文档进行设置,则可能是导致此问题的原因。